vortispy's diary

労働者です

iOSアプリを作った覚え書き

Androidで作ったやつの移植
Androidアプリをつくった覚書 - vortispy's diary

StoryBoardで画面をつくる

ボタンのイベントで関数を動かすときは@IBAction
ラベルと変数を関連づけるのは@IBOutlet
をつかう。
そうするとStoryBoardのConnection inspectorに表示される。表示された関数か変数をマウスでドラッグして画面上の要素につなげると関連付けできる。

CocoaPodsでライブラリを管理

Podfileに必要なライブラリとバージョンを書けばインストールやアップデートを楽にできる

tableview

tableViewが表示されるとき最初に呼ばれるのはviewDidLoad。ここに初期化処理を書く。これは再度表示するときには実行されない。
それぞれのセルが表示されるときにtableView関数が呼ばれる。このなかで要素の初期化を行う。

アルバムから画像を取得する

imagePickerをつかう。UIImagePickerControllerDelegate, UINavigationControllerDelegateの継承が必要。

func addImage(){
        let imagePicker = UIImagePickerController()
        imagePicker.delegate = self
        imagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
        presentViewController(imagePicker, animated: true, completion: nil)
}
    
func imagePickerController(picker: UIImagePickerController!, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]!) {
        //画像が選択されたときにする処理
        //処理終わり

        //この関数を呼ばないと画像選択画面からもどれない
        dismissViewControllerAnimated(true, completion: nil)
}
オプショナル

変数の型を宣言するときに"?"や"!"をつけることでその変数にnilが入る可能性を示す。

var foo: String? = "foo"// nilが入る可能性がある
var bar: String! = "bar"// 必ずどこかで初期化される
print(foo!)// 「nilではない」ことを"!"で示す必要がある
print(bar)// 宣言時に「どこかで初期化される」ことにしたので"!"が必要ない