swift4」カテゴリーアーカイブ

storyboard copy error

平成30年12月9日(日曜日)

storyboard上で、他のプロジェクトからコピペした場合に、以下のエラーメッセージ表示!!
原因は、該当classのmodule名がコピペ前のままとなっていたこと、コピペした場合は、要チェック!!
module名変更により、エラーメッセージ解消!!

複数ファイル(クラス)がある場合は、その数だけ変更。今回の場合は、全体ファイルとセルファイルの2つ有り。

Terminating app due to uncaught exception ‘NSUnknownKeyException’, reason: ‘[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key img.’
*** First throw call stack:

再開後のTips

平成30年9月20日(木曜日)

平成30年9月19日(水曜日)

レベル17ダウンロード継続 約1時間15分で完了。
開始 完了
113033..113151
http://cyberjapandata.gsi.go.jp/xyz/std/17/113151/54015.png ここまで。

平成30年9月17日(月曜日 祭日 敬老の日)

オフラインマップ(offlinemap)、屋久島データ組み込み openstreetmap分 動作OK!!
レベル 9〜15まで、このレベルでOK!!か
cyber版のpl作成完了。
cyberダウンロード レベル16まで完了。およそ40分。

レベル17ダウンロード 約2・6時間要か。
112896からスタート!!
http://cyberjapandata.gsi.go.jp/xyz/std/17/113032/54015.png
↑ここまで読み込み完了。
次は、113033からスタート ここまで約一時間40分要。
http://cyberjapandata.gsi.go.jp/xyz/std/17/113033/53760.png

平成30年9月16日(日曜日)
平成30年9月15日(土曜日)
平成30年9月14日(金曜日)

フランス地点追加。
屋久島データ ダウンロード
開始
abes-MacBook-Air:地図データダウンロード a_n$ perl download_tiles_2.pl
http://c.tile.openstreetmap.org/16/56448/26880.png
終了
http://c.tile.openstreetmap.org/16/56515/27007.png
次は56516からスタート

http://c.tile.openstreetmap.org/16/56516/26880.png
約 1時間50分

平成30年9月13日(木曜日)

地点追加、サブメニュー改修。

平成30年9月10日(月曜日)

屋久島一部ダウンロード(約一時間)

平成30年9月9日(日曜日)

ソウル等、追加。防予フェリーなど追加。

平成30年9月8日(土曜日)

屋久島エリア ダウンロード用座標 praygroundプログラム完了。
コマンドラインにて、動作確認 OK!!
perl version 確認
perl -v
This is perl 5, version 18(スクリプト変更無く動作 スクリプト5.16)

1  9 - 441 - 210
2  10 - 882 - 883   420- 421  4
4  11 - 1764 - 1767   840- 843  16
8  12 - 3528 - 3535   1680- 1687  64
16  13 - 7056 - 7071   3360- 3375  256
32  14 - 14112 - 14143   6720- 6751  1024
64  15 - 28224 - 28287   13440- 13503  4096
128  16 - 56448 - 56575   26880- 27007  16384
256  17 - 112896 - 113151   53760- 54015  65536
512  18 - 225792 - 226303   107520- 108031  262144
1024  19 - 451584 - 452607   215040- 216063  1048576

平成30年9月10日
level 15まで完了
28287/13503 ここまで一時間15分(所要時間)
次level 16として、5時間か
最後のログ
http://c.tile.openstreetmap.org/16/56448/26923.png
^C

#!/usr/bin/perl -w

use lib '/Library/Perl/5.16';
use strict;
use LWP::UserAgent;
use Data::Dumper;

mkdir("tiles");

#&get_tiles([0..7],[0..7],3);
#&get_tiles([0..15],[0..15],4);
#&get_tiles([0..31],[0..31],5);
# 以下動作確認OK!!
#&get_tiles([441..442],[210..211],9);

&get_tiles([882..883],[420..421],10);
&get_tiles([1764..1767],[840..843],11);
&get_tiles([3528..3535],[1680..1687],12);
&get_tiles([7056..7071],[3360..3375],13);
&get_tiles([14112..14143],[6720..6751],14);
&get_tiles([28224..28287],[13440..13503],15);
&get_tiles([56448..56575],[26880..27007],16);
&get_tiles([112896..113151],[53760..54015],17);
&get_tiles([225792..226303],[107520..108031],18);
&get_tiles([451584..452607],[215040..216063],19);

##########

exit(0);

sub get_tiles() {
	my $x_ref = shift @_;
	my $y_ref = shift @_;
	my $z = shift;
	
	my $ua = LWP::UserAgent->new();
	if(not(-d "tiles/$z")) {
		mkdir "tiles/$z";
	}
	for my $x (@{$x_ref}) {
		if(not(-d "tiles/$z/$x")) {
			mkdir "tiles/$z/$x";
		}
		for my $y (@{$y_ref}) {
			my $url = "http://c.tile.openstreetmap.org/$z/$x/$y.png";
			print $url."\n";
			my $res = $ua->get($url);	
			if($res->code!=200) {
				print("Error loading $x/$y/$z\n");
				next;
			}
			open TILE,">tiles/$z/$x/$y.png";
			print TILE $res->decoded_content;
			close TILE;
		}
	}
}

平成30年9月7日(金曜日)

googlemap applemapと同等機能追加。
釜山データ追加。

平成30年9月6日(木曜日)

平成30年9月5日(水曜日)

地図 ジャンプ機能追加

平成30年9月4日(火曜日)

国内 温泉等追加。

平成30年9月3日(月曜日)

フランス地点追加。メニュー キャッシュ=nil

平成30年9月2日(日曜日)

フランス・国内 地点追加。

平成30年9月1日(土曜日)

N WORLD 高知、追加。

平成30年8月31日(金曜日)

地点登録、ダウンロードエリア予定。

平成30年8月30日(木曜日)

屋久島、ポイント追加。ホテル写真等追加。

平成30年8月29日(水曜日)

屋久島・・テーブル体裁、BUTTONクリックによるサファリ遷移。
TABアイコン完了。
これから
データ収集。格納・・登山口・関連リンク等ほぼ骨子完了。
ローカルファイルダウンロード範囲調査が今後の課題!!。

[self.yourButton setTitle:@"Default Title" forState:UIControlStateNormal];

サファリ遷移

[ivc setModalPresentationStyle:UIModalPresentationCustom];
[ivc setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];

object-c版
SFSafariViewController

平成30年8月28日(火曜日)

屋久島関連
google、apple map 表示追加。
TABとテーブル追加(array版)本日 ここまで。

平成30年8月27日(月曜日)

屋久島MAP、地図切り替え。各地点データ収集。
今後として、WEBデータ閲覧(発着時間等)・・テーブル表示か?。

平成30年8月26日(日曜日)

屋久島MAP、基本事項ほぼ完了。データコピーと各地点の情報・写真等を入手しながら配列格納。

平成30年8月25日(土曜日)

全ての審査完了!!

屋久島MAP、配列バージョン、タップまでの基本的事項完了。
今後は、単独データの配列化。細部の調整等。

平成30年8月24日(金曜日)

オルレ・・再再アップロード
利用理由:地図上の現在位置表示(却下)
Your current location will be displayed on the map.
You can know the location on the route.(OK!!)

利用理由:地図上の現在位置表示について、先行アプリ審査では通過。
apple担当者の中にも「ゆらぎ」がある模様。

Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage


We noticed that your app requests the user’s consent to access their location but does not clarify the use of this feature in the permission modal alert.

Next Steps

To resolve this issue, please revise the permission modal alert to specify why the app is requesting access to the user's location.

The permission request alert should specify how your app will use this feature to help users understand why your app is requesting access to their personal data.

平成30年8月23日(木曜日)

オルレ再アップロード、他は九州道審査完了。

屋久島 objective-c Annotation関連
Why is my MKPointAnnotation not Custom?
[iOS] MapKitの基本的な使い方(iOS9対応)
Objective-Cの基礎 クラスの継承を理解する.

平成30年8月22日(水曜日)

おでかけ系新規作成内容修正。
新たなgoogle key必要。
以下リンク
Get Started
version 1.0
info.plist 利用理由:地図上の現在位置表示
bundle変更


その他は、リビジョンとinfo.plist修正。

九州道UP、永世UP、大分オルレUP、別府オルレUP、
おでかけ山口UP、おでかけ大分UP。

平成30年8月21日(火曜日)

別府温泉道、予報士plus(appleとのmail交換により事情説明・・・) 審査通過。
おそらく、これであとは、修正して再審査はほぼOK!!のはず。

平成30年8月20日(月曜日)

屋久島アプリ・・・アノテーションにサブタイトル追加!!

新規登録及び「利用理由:地図上の現在位置表示」として、再申請
別府にて再申請の確認と新規予報plus版アップロード!!審査待ち!!
(今回は、developerより新規登録したが、connectから+でも可)

アカウントからの App の削除
[iPhone] iOS App IDs を登録する

アップロード、8本却下

警告: 一度削除された App は、復元することはできません。SKU​ や App 名を同じ組織内で再利用することはできません。ビルドをアップロードした場合、 バンドル ID ​ を再利用することはできません。

Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage


We noticed that your app requests the user’s consent to access their microphone and location but does not clarify the use of this feature in the permission modal alert.

Next Steps

To resolve this issue, please revise the permission modal alert to specify why the app is requesting access to the user's location.

The permission request alert should specify how your app will use this feature to help users understand why your app is requesting access to their personal data.

Resources

For additional information and instructions on configuring and presenting an alert, please review the Requesting Permission section of the iOS Human Interface Guidelines and the Information Property List Key Reference. You may also want to review the Technical Q&A QA1937: Resolving the Privacy-Sensitive Data App Rejection page for details on how to provide a usage description for permission request alerts.

Learn more about Protecting the User’s Privacy.

Please see attached screenshot for details.

ガイドライン5.1.1 - 法律 - プライバシー - データの収集と保管


アプリが許可モーダルアラートでこの機能を使用するためのユーザーの許可をリクエストしたことに気付きました。

次のステップ

この問題を解決するには、アクセス許可モーダル警告を確認して、ユーザーがユーザーの場所へのアクセスを要求している理由を指定してください。

許可要求は、あなたのアプリケーションを理解するのに役立ちます。

平成30年8月19日(日曜日)

アプリ確認・itunes設定確認・アップロード完了。約5時間の作業!!
併せて、ホームページデータベース更新(九州・別府)

平成30年8月18日(土曜日)

屋久島版、地理院地図OK!!、mapkit グリフ版、picture等、基本的なところはOK!!
ポツポツ、データ入力。

全アップデートは、itune関係を残すのみ!!

向き iPhone 5.8インチ iPhone 5.5インチ iPad 12.9インチ
縦 1125 × 2436 1242 × 2208 2048 × 2732
なので、シュミレーションでは、iphone 6 plus(8.4)、又は上から最初のiphone 6 plusでOK!!

itune用スクリーンショット作成完了。あとはUPLOADを残すのみ。。

スグレモノ!!すぐれもの!!FileMerge
Macでファイルの差分をサクッと確認したい時に便利!Xcode付属のファイル比較ソフト「FileMerge」

平成30年8月17日(金曜日)

全アップデートの内容チェック完了!!
別府八湯温泉道、四箇所の位置ずれ等修正完了OK!!
九州温泉道ダウンロード後のち確認、一箇所名称変更につき、コレクションファイル修正OK!!
永世名人完了。
これで、ほぼ全アップデートは、itune関係を残すのみ!!

平成30年8月16日(木曜日)

mapkit MKAnnotationViewからMKMarkerAnnotationViewへの再学習!!
hファイルをMKMarkerAnnotationViewに変更のみで、OK!!
縄文杉、フェリーターミナルまで表示!!本日ここまで。

屋久島、地理院地図、CustomMapからx,y,z読み取り。
温泉データ最新版入手
別府八湯温泉道ダウンロードチェック、緯度経度違い有り、エリア名(全角、半角)、エリア名(よみがな追加)等の諸問題。
flipview(ボタンタイトルとコード変更)、全半角対応で、ダウンロードphp修正完了。
詳細は、フォルダメモ参照のこと

全アップデートの内容チェック!!

オルレについては、 appicon追加し、ios verup 対応!!としてアップロード予定。

平成30年8月15日(水曜日)
おでかけ大分 urlチェック
豊後高田市完了し、全て完了。

オルレ(地理院地図)再考
★地理院
シンプルmapkit
シンプル地理院地図プロジェクト表示まで完了!!
(p.list)マイロケーションやタイル取得のための、
App Transport Security Settings、Privacy – Location Always and When In Use Usage Descriptionなど必要。

また、- (MKOverlayRenderer *)mapView:(MKMapView *)mapView
rendererForOverlay:(id )overlay
{}
も描画に必要!!
しばらく、download_tiles.plについて、考察!!
考察結果。。。
plの最初にある
#&get_tiles([0..7],[0..7],3);
#&get_tiles([0..15],[0..15],4);
&get_tiles([0..31],[0..31],5);
を設定する必要あり。
順序は、X.Y.Z
Zは拡大率?か拡大するほど、大きくなる。ちなみにオルレは14から19まで
屋久島は、11くらいからか
XとYの値は、ダウンロードしたCustomMapを実行し、その格子からそれぞれ読み取ればOK!!か

平成30年8月14日(火曜日)

気象予報士 1024 itunes画像 作成完了
おでかけ大分 urlチェック
豊後高田市を除き完了。

平成30年8月13日(月曜日)

update(10本)整理中!!
おでかけ大分 url整理
AppIcon所在確認
LaunchScreen設定
searchcontroller プレースホルダ設定などなど!!

平成30年8月12日(日曜日)

ナビゲーションタイトルカラー(swift4)

self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]

タブバーアイテムカラー
以下リンク OK!!
n SWIFT 3.0 and SWIFT 4.0:
Change tab bar item selected color in a storyboard

大分RSS….pubdata フォーマット調査 フォーマット適用等完了。動作確認OK!!
あとは、お出かけ版にコピペ!!

おでかけ大分版、あとはデータチェック(リンクurlなど)
薦神社
佐田温泉
きららドーム
こんがりパン工房

大分ロゴ 茶色 ブラウン化
山口 メニューのロゴ削除完了

今後として、WEB情報の取得、更にCSVファイルのサーバー取得・コアデータ更新など。

平成30年8月11日(土曜日)

おでかけ大分・・昨日から山口版をもとに構築中。最初のプロジェクトを作成し、あとはswiftやcore、picture、ストーリーボード関係等をコピーし比較的容易な手順。
基本的なところは完了し、メニューテーブルの修正(大分が項目が多い)や各マップのマーカー調整等・・進行中!!
メニュー背景・マップマーカー。
apple mapにて、pictureの解像度によるでは、なく、アノテーション埋め込みのstak viewの幅がどうもlabelやbuttonのwidthで決定される模様。
対処として、美しくないが、labelにダミーの空白を挿入し、回避。

平成30年8月10日(金曜日)

昨夜からおでかけ山口UPLOAD!! 何と!! 10GB(以下 図書館にて作業)
(スクリーンショット等追加し、申請可状態等チェック)

★★★温泉道アップデートについて、過去コードを参照しながら、記憶を手繰り寄せる作業。


① javascript版について・・・
地図の描画時、地点データをデータベースから読み込まずに、そのままjavascriptのコードの中に
埋め込むことのより、地図を描画する。
そのためのjavascriptフォーマットにて出力を取得(画面に表示 コピペによる利用)。

② コードの流れ
予め、修正の必要なspa9syu_latlon_correction.csv(php_files内)をサーバに格納しておき、そのファイルにあるものは、
その値を採用する。

③ CSVを出力するか、JAVASCRIPTを出力するかは、コードのコメントアウトによる。

④ 固定ページとコード対応
以下のみ
作成中2   ONSEN_GET2_CSV_X

作成中2にて、実行する。
⑤ ONSEN_GET2_CSV_Xの最後にグーグルマップの地図描画がある。これは、アノテーション表示がテーブル表示となっている。

⑥ その他、ウィンドプロファイラ関係の観測所地図データについても、ONSEN_GET2_XX.php内にあり。
別府版は、ONSEN_GET_BEPPU.php


平成30年8月9日(木曜日)

SWIFT4版有り
UITableView – change section header color

GIMP BUMP MAP 学習。
GIMP (GNU 画像編集プログラム)
境界のぼかし
バンプマップ…

平成30年8月8日(水曜日)

昨日の作業の参考url整理 完了、
テーブルタイトルセクションformat変更完了。
砂時計DispatchQueue試すも不可!!
(urlの確認 完了)、不要の地点削除 完了!!

平成30年8月7日(火曜日)

apple detailmap google detailmap maptype 完了
google detailmap ナビゲーション 完了。
のこるは、宇部日の削除完了。

let svc = StartViewController()
svc.modalTransitionStyle = .CrossDissolve
presentViewController(svc, animated: true, completion: nil)

performSegueWithIdentifier("mySegueID", sender: nil)

presentViewController(nextViewController, animated: true, completion: nil)

self.navigationController?.pushViewController(nextViewController, animated: true)

btnLogin.backgroundColor = UIColor.init(colorLiteralRed: (100/255), green: (150/255), blue: (200/255), alpha: 1)

btnLogin.backgroundColor = UIColor.darkGray

APPLE・GOOGLEMAPともにアノテーションTAP未対応後対応!!
あとは、漏れ等のチェック!!
(urlの確認)、不要の地点削除!!

平成30年8月6日(月曜日)

今後、apple detailmap google detailmap maptype と
detailgooglemap のナビゲーション機能追加。
更に
宇部日の削除、RSS ALLの不具合など

icons
Icons

Orientation固定
今後の課題として、transitionする場合のimageの属性(fillなど)を考慮したコード( 下はそのキーワード)
transitionContext.containerView.convert

①detail_map(apple)完了!!
画像のラウンドレクト(以下リンクのextension版にてOK!!)
How do I make an UIImage/-View with rounded corners CGRect (Swift)
SwiftでUIButtonを角丸に(Corner radius)する方法
ボタンのラウンドレクト
②googlemap上へのボタンの配置(コードによるConstraint)
以下リンク swift3+版にてOK!!
Swift | Adding constraints programmatically

平成30年8月5日(日曜日)

Orientation問題、さてどうするものか?
するしないについては、以下リンク
iOS. How to enable and disable rotate on each UIViewController

scrollviewを使うと「カクン」となる。今の処、不採用!!
最後の詰めとして、画像 aspect fit と scall to fill 問題 (画像の歪み)
transitionで、そこまで座標を読んで・・・変換可能か 要調査。。

昨日までに、大きな課題は片付いたはずが、テーブルタップ後遷移するまでにdelay発生!!
以下リンクの最後swift4版により解決!!
performSegueWithIdentifier very slow when segue is modal

        /*
        DispatchQueue.main.async {
            self.performSegue(withIdentifier: "showDetail", sender: indexPath)
        }
        */

これで、大きな課題は片付いたと考える。

平成30年8月4日(土曜日)

ほぼ本日で、大きな課題は片付き・・・今後は細部を調整し仕上げに。。。。

タブバーコントローラ上のテーブルセルタップでの画像ズームインアウトについて・・・
CustomTransitionSample01-masterをたたき台として、構築を始めるも、Tab Bar Controllerがネック!!
遷移元・先のVIEWがTab Bar Controller上にあると、不具合発生。
InteractiveModal(dismiss)では、Tab上でも働くので、これを参考に改修し、OK!!となる。
transionのfromやtoについて、Tab上ではTab Bar Controllerのアドレスが返される模様!!
fromやtoをそのまま使用することで、今回のOK!!に繋がったとおもわれる。

平成30年8月3日(金曜日)

detailviewのtableviewからviewへの切り替え、scrollviewの導入まで昨日で終了。
参考リンク!!
[Swift3] ScrollViewを使ってみた!

今日は、再度transitionの導入!!
present modallyとshow(eg push)を切り替えることにより、にて動作確認。

作業を開始すると、様々問題!!
まずは、昨日のTABCONTROLLERでのFROMやTOの取得、更には、ズームアウトでの青帯TOOLBAR時黒帯

以下リンクを参考に、一から要構築!!
iOS Tutorial: How to close a modal by dragging it down (InteractiveModal)
iOS Tutorial: How to make a customizable interactive slide-out menu in Swift
↓分かりやすい概念(viewとimage)
iOS custom transition animation
↓Beginner Cook
iOS Animation Tutorial: Custom View Controller Presentation Transitions
↓対処
カスタム画面遷移でモーダル表示をしたとき、dismissしたら画面が無くなっている!?

平成30年8月2日(木曜日)

transition関係で、壁!!
一つの壁は、fromとto(firstとsecond)の取得。
どうも tabcontrollerを介すと取得が上手く働かない模様。
別途、delegate内にそれぞれのvarを設定し、segue内で設定することより、上手く働く模様。

二つ目は、scrollbar関係、scrollviewとviewの四辺を0設定し、equalwidthを同じに設定し、
viewの高さを例えば800等に設定すればOK!!か
途中、赤線が標示されるものの、↑の作業を続ければ最終的に赤線も消えOK!!

平成30年8月1日(水曜日)

特別警報対応片付き、update再活動!!
最後の課題として、mastertableviewの仕上げ。
twitter風で検討。画像タップしてズーム、更にurlタップでsafari
半透明タップにて、復帰!!をイメージ
以下参考として、

★ソースのみシンプル(swift4 convert ok!! 今後組み込み後 要動作確認)
prepare segueを設定し、動作確認。
@stingerstinger/SDPresentationManager.swift
ソース名:SDPresentationManager
プロジェクト名 singleview2

CustomTransitionSample01-master検討
↑のリンク

★Expandable cells with stack view


平成30年7月31日(火曜日)

特別警報改修対応(結局3日費やす 完了)
今後は、アップデートと新規屋久島版!!来月から。。。
CustomTransitionSample01-master検討
↑のリンク


平成30年7月30日(月曜日)

特別警報改修対応。


平成30年7月29日(日曜日)

特別警報改修対応。


平成30年7月28日(土曜日)

googlemap単独表示完了。
ナビゲーションのための、アイコンの設置、更に、ナビゲーション機能(GOOGLE,APPLE)の確認まで完了!!


平成30年7月27日(金曜日)

まずは、単独map表示から・・・
segue後mapkit単独表示まで午前中に完了。細部調整!!
ナビゲーションツールバー表示にて不具合!!
tableviewcontrollerからviewcontrollerに切り替え。master、detail共。
又、アノテーション開示状態としみるも、使いづらく、開示無しとする。
取り敢えず、一日かけてmapkit単独表示まで終了
あとは、googlemap単独表示、ナビゲーション機能、icon設定、itunes画像等々

Remove text from Back button keeping the icon


平成30年7月26日(木曜日)

詳細view・・pictureサイズ等の調整まで完了。
更に、urlタップによるホームページ表示・google及びmapkitによる詳細画面へのセグエ完了。
残るものとしてナビゲーション機能と単独map表示。


平成30年7月25日(水曜日)

mapkitにて試行錯誤、detailCalloutAccessoryViewへのxib代入で代入されていない現象。
また、uiviewの代入でも同じ現象。
xibは、止めとして、stackviewに切り替え、codeにてstackviewにlabel、picture、buttonなど追加してOK!!
更に、uiimageのサイズ変更(extension)
Resize UIImage to 200x200pt/px

StackView
axisは軸の意ですね。StackViewのサブビューを垂直(縦)方向に並べるか、水平(横)方向に並べるか、のどちらかです。

stackviewd参考リンク
【Swift】detailCalloutAccessoryViewの使い方。ピンの吹き出しをカスタマイズする。

googlemap、mapkit、アノテーション tappdeまで完了。
今後は、詳細view、ナビゲーション関係か


平成30年7月24日(火曜日)

メニューVIEW見かけ、MAPKIT マップタイプ完了。

detailCalloutAccessoryView要調査!!
↑りんく
[iOS] MapKitの基本的な使い方(iOS9対応)
iOS9以降、MKPinAnnotationViewにdetailCalloutAccessoryViewが追加されました。
このビューに設定することで、従来のsubtitleは表示されなくなり、ここにも自由なビューが置けることになったということです。

更に、以下内に有り(CustomTransitionSample01-master)
テーブルviewからの画像表示として検討!!
The best way to learn UIViewControllerAnimatedTransitioning
カテゴリー内(UIPresentationController)
CustomTransitionSample01-master


平成30年7月23日(月曜日)

本日より、統合化!!
googlemaps、テーブル、ios mapkit、rss reader 以上統合まで完了!!
見た目調整!!
宿題 MAPKIT マップタイプ メニューVIEW、更には、MAPKIT カスタムアノテーション、詳細viewなど


平成30年7月22日(日曜日)

googlemapのmenu化完了。
これで、googlemap,mapkit,rss,tableと部分的には、ひとまず完了!!
今後は、これらの統合と全体調整!!

平成30年7月21日(土曜日)

picture、icon markerほぼ完了。(細かくはpictureのサイズ調整が残る。)
あとは、取り敢えず統合(google、テーブル、ios mapkit…)

平成30年7月20日(金曜日)

markericon image download 後 gimpでほぼ設定完了。
あとは、pictureの移動と表示。。。

平成30年7月19日(木曜日)

googlemap マーカー吹き出し xib版サイズ調整等(ひとまず許容範囲)

平成30年7月18日(水曜日)

googlemap マーカー吹き出し写真 コード挿入完了。
更にxib版まで完了。

平成30年7月17日(火曜日)

9日移行は、mapkit対応
mapkit一段落し、masterview(テーブル表示)、menu、サーチコントローラ等まで完了。
残るのは、googlemapと全体のまとめ、tabviewcontroller!!

comgooglemaps install、現在位置表示まで完了

おでかけマーカー表示完了。マーカータップOK!!。吹き出しview関係下調べ完了。
今後として、吹き出しの調整、マーカーのicon化など

平成30年7月16日(月曜日)

① MasterViewController表示まで完了!!
② csv2core_master_detail_searchBar_Aをお手本に、detailview 更にはsearchcontrollerまで実装済。
更にmenuview表示(セレクト対応)まで実装!!
残るは、グーグルマップ!!で基本的事項は完了。

平成30年7月9日(月曜日)

おけかけ山口、COREDATA格納処理完了(FORCASTER PLUS版修正してOK!!)
更に、ViewControllerでのpredicate、配列への格納、プリントまでOK!!
swift4 シンプルリンク
How do I make a fetch request using NSManagedObject’s new fetchRequest function?
double プリントアウト!!
[iPhone] Swiftでの Int, String, Double を変換してみると

平成30年7月8日(日曜日)

MapKit swift4版 ひとまず終了し、本日より、おでかけcoredata作成へ・・・!!

平成30年7月4日(水曜日)

MapKitに移行!!

RSSreaderプロトタイプ版完了(reach関係とurl(廃止等)関係のerror処理は、未だ。)

平成30年7月3日(火曜日)

セル内表示調整。urlに変わって(これはbutton表示)、サイト名表示!!

今後の参考 過去リンク
apple map kit

平成30年7月1日(日曜日)

今後として、
砂時計検討と全体デザイン!!

url表示 cell内button押下によるSFSafariViewController遷移完了。
cell index.path取得については、以下参考(一番下 swift4対応)
swift: how to get the indexpath.row when a button in a cell is tapped?

試行錯誤の結果、SFSafariViewControllerを使用し、トランジション変更してOK!!とする。

        if let url = url{
            let vc = SFSafariViewController.init(url: url)
            
            vc.modalPresentationStyle = .overFullScreen
            vc.modalTransitionStyle = .coverVertical
            
            present(vc, animated: true, completion: nil)
        }

WKWebView
Static member ‘load’ cannot be used on instance of type ‘WKWebView’
検索するも、今年春以降の情報無し。。お手上げ
更に、web関係の情報検索すると、
SFSafariViewControllerなるものを発見。取り敢えず次はこれにチャレンジ
[iPhone] SFSafariView, WKWebView でWebブラウザを作る

SFSafariViewControllerについて、検索。コピペにて動作するコード無し(xcode Version 9.4 swift 4.1)
試行錯誤 以下完動!!

override func viewDidAppear(_ animated: Bool) {
        
        let url = URL(string:"http://office70.sakura.ne.jp/spa9syu/")
        if let url = url{
            let vc = SFSafariViewController.init(url: url)
            present(vc, animated: true, completion: nil)
        }
}

viewDidLoad → viewDidAppear
whose view is not in the window hierarchy! を調べよう。

UIWebView → deprecated

WKWebViewとSFSafariViewControllerの違いについて

SFSafariViewController TransitionStyle 変更
以下サイトにより、解決!!
SFSafariViewControllerの表示アニメーションを変更する

平成30年6月30日(土曜日)

全サイト用の配列を別途用意する関係で、下記配列(int,struct)追加、最後の!無しでコンパイラ通らず、午前中つぶす。

        var each_feedItems = [Int: [FeedItem]]()
        // 追加
        all_feedItems.append(contentsOf: each_feedItems[0]!)

ヘッダー表示、サイト先読み、個別配列格納等完了。

平成30年6月29日(金曜日)

LaunchScreen.storyboard
project general内に有り。

activityIndicatorViewの表示が遅れる不具合!! all_sightにて・・・
対処として、立ち上げに全サイトを読み取り、全サイト用の配列を別途用意する方向で検討」!!

【Swift】UIActivityIndicatorViewを使う【ぐるぐる】

平成30年6月28日(木曜日)

日付による、rss配列削除完了!!

配列 部分指定削除
removeSubrange(_:)

var measurements = [1.2, 1.5, 2.9, 1.2, 1.5]
measurements.removeSubrange(1..<4)
print(measurements)
// Prints "[1.2, 1.5]"

日付ソート 昇順 降順

            all_feedItems.sort(by: {
            //$0.pubDate.compare($1.pubDate) == .orderedDescending
            $0.pubDate.compare($1.pubDate) == .orderedAscending
        })

平成30年6月27日(水曜日)

array削除
Swiftで配列の要素を削除(remove)する方法
文字列比較
Swift3で日付(Date)の比較が超簡単になっていた件

日付文字列 → date 変換
How to Sort Objects by Date in Swift
上によりOK!!

その他、意味不明なnil混入!! 個別ではOK!!なるも、複数サイトを読むと、宇部と萩間にnil混入!!
回避策として、別途all_feedItemsを設け、サイトごとにfeedItemsを読み取った後、代入としてOK!!
これで、一応、pubdate日付による複数サイトの並び替え一段落。。。。

平成30年6月26日(火曜日)

RSS 日付フォーマット対応
some(“2018-05-29T08:30:00+09:00”)
Optional(2018-05-28 23:30:00 +0000)
dateFormatter.dateFormat = “yyyy-MM-dd’T’HH:mm:ssZ”
NSDateFormatter
NSDateFormatter / 日付フォーマットについて

        // ①"Tue, 26 Jun 2018 10:00:00 JST"                              0-1
        //dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss z"
        
        // ②"2018-05-25"                                                 2
        //dateFormatter.dateFormat = "yyyy-MM-dd"
        
        // ③"2011-09-21T00:00:00+09:00"                                  3-5-6-7
        // 以下ふたつ何れでも可!!
        //dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
        //dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
        
        // ④"2018-04-17 14:30:00"                                        4
        //dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"

平成30年6月25日(月曜日)

toolbar追加(二段)rssサイト個別指定(計8)item追加

平成30年6月24日(日曜日)

Swift 正規表現(rss reader htmlキャラクターを削除)
Swift 正規表現を使って指定した

平成30年6月23日(土曜日)

STRUCT SORT
How do you sort an array of structs in swift

平成30年6月22日(金曜日)

print(getDate(time_str: “Tue, 19 Jun 2018 10:00:00 JST“))

func getDate(time_str:String) -> Date? {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = “EEE, dd MMM yyyy HH:mm:ss z
dateFormatter.timeZone = TimeZone.current
dateFormatter.locale = Locale.current
print(time_str)
return dateFormatter.date(from: time_str ) // replace Date String
}

日付フォーマット↑
日付/時間フォーマットの変更方法

平成30年6月20日(水曜日)

XMLParser使用を元に、取り敢えず進める。

平成30年6月17日(日曜日)

iOS-Charts(本日知る。後日詳細等調査!!)

PLUS版完了し、次のTODOへ・・・


RSS関係・・・
現行のVersionは、受信したデータ(NSURLSession)をNSJSONSerializationにてjson変換、更にNSDictionaryに変換した後、処理。

他の方法として、rss( XMLformat )をapple純正のXMLParserを利用する方法もある。
swift4版
2018-04-13 Swift4でRSSリーダーをつくろう
rss-reader-swift4-master


Swift-HTML-Parser
現行は、kanna使用
Updated for Xcode 9.3 版があるので、このまま使用でOK!!か


更に、json formatで返されるitunes…lookup等については、Codableにて処理か。

json formatでなく、xml(rss)の場合について、以下
更に、codable xmlで検索すると、以下 rssのcodable処理要検討!!
↓(説明)
Encoding, Decoding and Serialization in Swift 4

Implementing a custom Decoder in Swift 4

↑について、playgroundにて検証するも、力不足!!


MapKit(swift4)

平成30年8月20日(月曜日)

objective-c版 stackview設定
Add views in UIStackView programmatically

平成30年7月24日(火曜日)

detailCalloutAccessoryView要調査!!

平成30年7月15日(日曜日)

色分け設定(白背景、文字赤)、menuviewテーブル(市町村別、セクション別)表示、タップ対応、itembutton押下まで動作完了。

平成30年7月14日(土曜日)

試行の結果、クラスタリング不使用、MKMarkerAnnotationView使用(理由は、マーカーに文字表示可能なこと、更に色分けすれば、視認性向上による)
本日ここまで、これをベースに更に深化予定。

平成30年7月13日(金曜日)

MKMarkerAnnotationViewによる、おでかけスポット表示、骨格はほぼ完了!!
残るは、sectionによる色分け表示(markerTintColor、glyphTintColor)、coredata predicate関係、写真、詳細画面表示など。

平成30年7月12日(木曜日)

MKMarkerAnnotationViewについて、ひとまず完了!!

MKMarkerAnnotationView –> Tips
順序
MKAnnotation、更にMKAnnotationView
必要なパラメーターは、MKAnnotation作成時点で渡すこと。(MKAnnotationView内で設定)

MKAnnotation
① マーカー表示のみであれば、coordinateのみでOK!!
② calloutする場合は、最低限、titleが必要(更に詳細があれば、subutitleまで)

MKMarkerAnnotationView
markerTintColor(マーカー色 丸いマーカーのこと)
glyphTintColor(glyphTextの色、glyphImageは変化しない。)
glyphText(日本語漢字表示で二文字まで実用可)
glyphImage(= UIImage(named: “hotspring.png”))
↑を表示するには、glyphTextを設定しないこと。
又、glyphImageは詳細表示ではなく、輪郭が表示されるのみ。。

①②③④を使い分ければ、識別可能か!!

残るは、detailの複数行表示!!(以下の最後のもので解決)
how to show multiple lines in MKAnnotation with autolayout?

leftCalloutAccessoryViewについて、以下の最後のもので解決
MapKit iOS 9 detailCalloutAccessoryView usage
更にサイズ調整!!(但し、縮小されて見づらい、icon表示サイズ)
Resizing image to fit in MapView’s leftCalloutAccessoryView

平成30年7月11日(水曜日)

未確認リンク
Building the perfect iOS Map (II): Completely custom annotation views

how to show multiple lines in MKAnnotation with autolayout?

most simple MKMarkerAnnotationView

//---------------------------------------------------
class StandardAnnotation: NSObject, MKAnnotation {
    let coordinate: CLLocationCoordinate2D
    let title: String?
    let subtitle: String?
    init(coordinate: CLLocationCoordinate2D,title:String,subtitle:String) {
        self.coordinate = coordinate
        // Calloutの場合は、以下必要(titleのみでも可)
        self.title = title
        self.subtitle = subtitle
    }
}
//---------------------------------------------------

現在地表示!!

if annotation is MKUserLocation {
   return nil
}

平成30年7月10日(火曜日)

coredataからの読み込み、MKMarkerAnnotationViewによるmapkit表示完了!!

平成30年7月7日(土曜日)

再学習 以下リンク
 Annotation(独自画像)(AnnotationView 独自画像、テキスト、button action有り)オールカスタマイズ版
Update December 2017: Fully updated for Xcode 9 and Swift 4.
How To Completely Customise Your Map Annotations Callout Views
CustomCalloutView-Starter project

 MKMarkerAnnotationView及びMKAnnotationView対応(source内でコメントアウト)
コールアウト画面の複数行対応等
calloutAccessoryControlTapped有り
MapKit Tutorial: Getting Started
HonoluluArt

その他、参考!!
How to add a button to an MKMapView annotation

Use Markers Instead of Pins for Map Annotations

たたき台として、有用!!2018年06月29日に更新
【swift4:開発メモ①】 MapKit⑴


その他動作確認等
下調べ・・・

以下リンクにて完動!!(swift4.1 Version 9.4 )
Working with Maps on iOS 11 with MapKit and the MKMapView Class
プログラム mapkit_swift4

↓以下 コピペにて完動!! swift4.1
iOS11 アノテーション クラスタリング
プログラム mapkit_swift4A

平成30年7月6日(金曜日)

MKMarkerAnnotationView学習!!

①MKAnnotation(必須)継承し、自らcall!!
②func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {} delegate メソッド

更に
MKAnnotationView(
MKPinAnnotationView
markerAnnotationView(新機能)

pin image 変更
pinView!.image = UIImage(named:”GreenDot”)!

平成30年7月5日(木曜日)

以前のAapKit…

MyAnnotation() → addAnnotation
更に、おそらくdelegateにてcalled!!   viewForAnnotation

plot()
//----------------------------------------
// 色別アノテーション作成
switch read_csv!.csv.rows[i]["section"]!
{
case "滝・川・湖":
let myAnnotation = MyAnnotation(pincolor: sections.sections["滝・川・湖"]!,title: name,subtitle:SubTitle,pin_style:"image",coordinate: location)
self.mapView.addAnnotation(myAnnotation)
case "その他":
let myAnnotation = MyAnnotation(pincolor: sections.sections["その他"]!,title: name,subtitle: SubTitle,pin_style:"pin",coordinate: location)
self.mapView.addAnnotation(myAnnotation)
}
//----------------------------------------

    //----------------------------
    // 標準アノテーション 改!! pin_style追加
    //----------------------------
    class MyAnnotation: NSObject, MKAnnotation
    {
        let pincolor: String
        let title: String?
        let subtitle: String?
        let coordinate: CLLocationCoordinate2D
        // 追加
        let pin_style:String
        
        init(pincolor: String, title: String, subtitle: String, pin_style: String,coordinate: CLLocationCoordinate2D)
        {
            self.pincolor = pincolor
            self.title = title
            self.subtitle = subtitle
            self.coordinate = coordinate
            // 追加
            self.pin_style = pin_style
            
            super.init()
        }
    }

    //----------------------------
    // ピンまたはイメージによる描画
    //----------------------------
    func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView?
    {
        if let annotation = annotation as? MyAnnotation
        {
            //print(annotation.pin_style)
            
            //=============================================================
            if annotation.pin_style == "pin" {
            ...
            //=============================================================
            } else if annotation.pin_style == "image" {
            }
    }

平成30年7月5日(木曜日)

annotation関係再学習。loop無しに「??」なれど、配列渡しで納得か!!
今後は、新機能の学習予定。

平成30年7月4日(水曜日)

要調査 WebAPI マニュアル POI
WebAPI マニュアル
Yahoo! Japan News等

要設定 マイロケーション!!
Privacy – Location Always Usage Description YourAppName would like to use your location.
Privacy – Location When In Use Usage Description YourAppName would like to use your location.


新機能!!クラスタリング等
MKMarkerAnnotationViewについては、これから
それ以外は完動!!
iOS 11で大幅に強化されたMapKit

swift4.1 完動
サンプル クラスタリング Tandmへのリンク等有り
IOS 11 で MapKit の新機能

GoogleMaps

平成30年7月17日(火曜日)

GoogleMaps install関連
Installing GoogleMaps (2.7.0)

Get Started

↑を参考に進めるも・・・
pod installにて
Attempt to read non existent folder発生!!

① folder名を日本語から英語に変更
② pod installでなく、pod update → pod installの実行
③ sudo pod …
④ sudo gem install cocoapods -n/usr/local/bin

等にて、成功するも、↑の何れが有効か確認できず。

更に、
Privacy – Location Always Usage Description
Privacy – Location When In Use Usage Description

LSApplicationQueriesSchemes
googlechromes
comgooglemaps

にて、現在位置表示まで完了!!

Useful information

平成30年5月15日(火曜日)

今回は、cell内のsegment_sw操作をmasterviewにて知る方法として、以下参考により、OK!!
但し、superviewの階層は、それぞれの環境により、要調整!!
TableViewCellにボタン付けていろいろやる

平成30年5月11日(金曜日)

Passing Data Between View Controllers in iOS: The Definitive Guide
protocol conformance that has a class bound
delegateをweakで宣言する際にprotocolにclassを継承する理由

apple
NSFetchedResultsController

Swift NSFetchedResultsController Trickery

平成30年5月5日(土曜日)

UITableViewのデリゲートメソッドまとめ

平成30年4月19日(木曜日)

Object Oriented Programming in Swift

CallKit iOS Swift Tutorial for VoIP Apps (Super Easy)

平成30年4月4日(水曜日)

複数のstoryboard
[iOS swift] ContainerViewをプログラムで作りたい
プロジェクト名 ContainerViewConstraints

UITableViewCell auto height based on amount of UILabel text

[swift] PopoverPresentationControllerの実装とタップした時にメインViewにタップ情報を反映させる方法

UITableViewのrowHeightやestimatedRowHeightに何を設定すると良いのか

チェック★

平成30年3月30日(金曜日)
チェック★uipresentationcontroller
チェック★ uistackview Expandable cells
平成30年5月8日(火曜日)
追加
チェック★伸縮するUITableViewを作る
NSFetchedResultsController
Swift NSFetchedResultsController Trickery
Core DataでNSFetchedResultsControllerを利用する
UIViewControllerからUICollectionViewのDataSourceを分離し肥大化を防ぐ具体例