iPhoneアプリ開発学校に通う生徒のおおまかな学習日報

Objective-C初心者。iPhoneアプリ開発学校に通う落ちこぼれです。授業の内容を記録しているのですが時間の都合でおおまかに書いてます。投稿内容は参考にしちゃだめです。

【木曜日】終日自習

いつも授業中にウトウトしてしまうので6時間ちょい寝ました(多いほう)。

今日は生徒全員の面談があるので授業は終日自習。
画面部品を作る課題が先生から出されたけど提出しなくてもよくて、今までの授業の復習をしたい人は復習をしてもよし。とのこと。

ということで私は以前ブログに書いた「要復習」の部分を復習することにした。

まず、以前復習したけど忘れてしまったものから。

※さっき「スーパーpre記法」というのを覚えたので、今回からソースを貼付けるときはソレを使うことにします。構文に色を付けたいんだけどObjective-C用は無いようなので(?)java用の色を付けておきます。よく見たらObjective-C用があった。objcって書いてあるのがソレなのね。


・プロトコル
<意味>
複数のクラスを作るときに各クラスが共通で実装しなければならないメソッドのこと。

<使い方例>

@protocolプロトコル名<親プロトコル名>
メソッド名;
...
@end

<実際のコード例>

@protocol CarLicence <NSObject,NSCoding> // CarLicence は NSObject と NSCoding を継承している
@required
-(void)driving;
@optional
-(void)safetyDriving;
@end


・アクションシート
<意味>
これのこと↓
f:id:jaam:20130919150657p:plain

<実際のコード例>

-(void)clickButton:(UIButton*)sender {
        // アクションシートの生成
            UIActionSheet* sheet=[[[UIActionSheet alloc]initWithTitle:@"アクションシートの表示" delegate:self cancelButtonTitle:@"キャンセル" destructiveButtonTitle:@"おわり" otherButtonTitles:@"項目0",@"項目1",@"項目2",nil] autorelease];
        // 画面に表示
        [sheet showInView:self.view];
}


・ターゲットアクション
<意味>
処理を別のオブジェクトに依頼すること。
設計方法(デザインパターン)のひとつ。

<実際のコード例>

// テキストフィールドにアクションを仕込む
[_textField addTarget:self action:@selector(call:) forControlEvents:UIControlEventEditingDidBegin];
// ターゲットアクションが働くと呼ばれる
-(void)call:(UITextField*)_textField
{
    NSLog(@"品名の編集はじまりましたよん");
}


・カスタムボタン
<意味>
任意の画像を用いてボタンを表示する。

<実際のコード例>

    // テキストフィールドの左に再読み込みボタンを仕込む
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    UIImage *reloadImage = [UIImage imageNamed:@"reload.png"];
    [button setImage:reloadImage forState:UIControlStateNormal];
    button.frame = CGRectMake(0,0,25,25);
    [button addTarget:self action:@selector(tapButton:) forControlEvents:UIControlEventTouchUpInside];
    _textField.leftViewMode = UITextFieldViewModeAlways;
    _textField.leftView  = button;
}


・「自動スケール調整を実際に体験してみましょう」のソースを見直す
<意味>
autoresizingはMaskUIWebViewクラスのプロパティ。
親のViewの画面サイズの変化に応じて、自身のViewの画面サイズもリサイズされる。

<使い方例>

インスタンス.autoresizingMask = 自動スケール調整の定数;

<実際のコード例>

// その前にインスタンスの生成
UIView *baseView = [[UIView alloc] initWithFrame:CGRectMake(30,30,240,150)];

// スケール調整
baseView.autoresizingMask = UIViewAutoresizingFlexibleWidth;

// 定数が複数ある場合はこう書く
baseView.autoresizingMask = UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleLeftMargin;


てなかんじで授業終了。
書いたはいいものの、合ってるか心配…

でもって今日はプライベートな考え事をしていてあまり進みませんでした。。
私事だけど早く落ち着きたい。