9VAeきゅうべえiPad版開発記録
昨日、今日の作業はこんな感じ。
ポリポリゴン(ドーナツのような穴のある図形)
ポリポリゴンをテストするには、グループ化しないといけないが、今、グループ化はメニューバーにしかなくて、iPad版にはメニューバーがない。選択枠の中心メニューにグループ化を入れる必要があるかも。とりあえず、サンプルデータ呼び出しの中にグループ化を入れてテストすることにする。
普通のポリゴンと処理内容は同じなので簡単にできた。
点線
iOSでは、CGContextSetLineDashで点線が描けないのか。XORだと点線が描けた。不思議。よくわからんので後回しにするが、最後の画像ではいつのまにかできてる。
ios - CGContextSetLineDash is unavailable - Stack Overflow
文字入力
文字入力や数値入力のためには、ダイアログを出さないといかん。その方法を調べると
UIAlertViewが非推薦になり、ViewControllerを経由しなければならなくなったらしい。とりあえず、ViewControllerに以下のコードを入れると、ひとまず文字入力ができた。
objective c - How to add text input in alertview of ios 8? - Stack Overflow
キャンセルボタンの付け方、項目の増やし方は下を見つけた。
入力欄付きUIAlertControllerサンプル - ROADTO みちログ
入力した文字列を取り出すために、char と NSStringの変換が必要である。
(いまさら)Objective-C 型変換まとめ - Qiita
色々操作していると、ソフトキーボードが表示されなくなった。その復帰方法。どうも、Macのキーボードを押すと、ハードキーボード接続になって、ソフトキーボードが表示されなくなるみたいだ。
iOSシミュレータでTextFieldをクリックしても、キーボードが表示されない - 使って創ってApp
アラートを表示するには、ViewControllerから呼び出す必要があるが、これはメインアプリ用に開放したい。9VAeきゅうべえのややこしい処理は QvaeViewの中に updateView 関数として用意することにして、これをメインの ViewController からタイマーで読み出してもらうことにした。このタイマーを利用してアニメ再生も行う。文字入力が必要ならダイアログを表示して入力ができる。プログラムの構造が決まってきた。
写真の入力
UIImagePickerというのがあるらしい。次は、iPadの中の写真入力に挑戦しよう。
カメラロールの写真から画像を取得(iOS, Objective-C) – nktmemo
iOSでフォトライブラリから画像を取得する方法 - Qiita
ところが、これを実行すると落ちる。どうもプライバシー設定が必要みたいだ。
info.plist を開いて右ボタンで項目追加し、
Key : Privacy - Photo Library Usage Description
Value : $(PRODUCT_NAME) photo use
を追加すると、なるほど!ちゃんとできるようになった。
しかし、フォトライブラリに画像が入ってないので、真っ黒。下を参照して画像を入れる。なお、下のコードだと、pickerは表示されなかった。多分古いコード。
この操作で、iPhoneシミュレータの中に画像を保存することはできた(Photosで見える)。さらに、元々サンプル画像が入っていたみたいだ。ところが、UIImagePickerでは何も表示されない。
[iOS]UIImagePickerControllerを使って写真データを読み込み方法 : 永遠日誌
ここがもう少し詳しかった。
UIImagePickerControllerSourceTypePhotoLibrary と
UIImagePickerControllerSourceTypeSavedPhotosAlbum があるが、UIImagePickerControllerSourceTypePhotoLibrary はアルバム選択があり、範囲が広いらしい。結局、UIImagePickerの起動とキャンセルの処理はできたが、iPadの中の画像が見えない。一旦諦め。
こういう場合は、できるところから作っていく。リソースの読み出しはできるようになったのでリソースにサンプルの画像データを入れて、画像表示ルーチンまで作成した。
下の画像の背景が PNG画像。なぜか点線もできてる。穴の空いた図形に半透明グラデーションがかかっている。