忍者ブログ

初心者が進めるiphoneアプリ開発

Macもiphoneすらもよく使ったことのない超初心者がお送りする、iphoneアプリの作り方の解説です。難しいことは抜きにしてとにかく動かしてみましょう。


×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



PickerViewは自分で用意した複数の値の中から1つの値を選択してもらう時に使用します。値が選択されるとメソッドが起動して、選択された値を受け取ってそれに対する動作を決定します。

「View-based Application」のフォーマットで作成したベースアプリを例に、実際に使用してみます。



「Interface Builder」を起動し、メニューから「Tools」→「Library」を開きます。「Library - Cocoa Touch - Data Views」から「Picker View」をドラッグしてViewに置きます。Viewの横幅いっぱいで大きいですが、全体のサイズ変更はできないようです。上のラベルは動作確認用です。


ヘッダに<UIPickerViewDelegate>を書き加えてプロトコルの実装をしてください。

@interface AgeViewController : UIViewController
<UIPickerViewDelegate>{ //プロトコルの実装
    //アウトレット
    IBOutlet UILabel *display;        //ラベル
    IBOutlet UIPickerView *picker;    //ピッカービュー
}

@end



「Interface Builder」でアウトレットをラベル(動作確認用)とピッカービューに結び付けてください。黒いダイアログは「File's Owner」上で右クリック「control + クリック」をすると出ます。


アプリ起動直後、デリゲートを自分自身に設定します。

- (void)viewDidLoad {
    [super viewDidLoad];
    picker.delegate=self;    //デリゲートを自分自身に設定
}


サンプルとして、3列のピッカービューを定義します。1列目は1行、2列目は2行、3列目は3行のコンポーネントを設定します。


//列数の設定(設定する列の数をreturnで返す)
- (NSInteger) numberOfComponentsInPickerView:(UIPickerView *)pickerView {
    return 3;
}


//!!行も列も番号は0から始まるので注意
//列(componentの値で渡される)に対する、行数の設定(設定する行の数をreturnで返す)
- (NSInteger) pickerView: (UIPickerView*)pView
numberOfRowsInComponent:(NSInteger) component {
    if (component==0) {
        return 1;
    }
    else if(component==1){
        return 2;
    }
    else if(component==2){
        return 3;
    }
    else{
        return 0; //帰り値が存在するので、関係ない場合でもとりあえず0を返させる
    }
}


//列(componentの値)、行(rowの値)に対する表示するものを設定
- (NSString*)pickerView: (UIPickerView*)pView
titleForRow:(NSInteger) row forComponent:(NSInteger)component {
    if (component==0) {
        if(row==0){
            return [NSString stringWithFormat:@"a"];
        }
        else {
            return [NSString stringWithFormat:@"0"];
        }
    }
    else if (component==1) {
        if(row==0){
            return [NSString stringWithFormat:@"1"];
        }
        else if(row==1){
            return [NSString stringWithFormat:@"2"];
        }
        else {
            return [NSString stringWithFormat:@"0"];
        }
    }
    else if (component==2) {
        if(row==0){
            return [NSString stringWithFormat:@"あ"];
        }
        else if(row==1){
            return [NSString stringWithFormat:@"い"];
        }
        else if(row==2){
            return [NSString stringWithFormat:@"う"];
        }
        else {
            return [NSString stringWithFormat:@"0"];
        }
    }
    else {
        return [NSString stringWithFormat:@"0"];
    }
}


ピッカービューの操作が起きたときにイベントを発生させるコードを書きます。このメソッドは、ピッカービューの項目の選択が確定した時に呼ばれます。


//選択されているindexを受け取って、ラベルに表示する
- (void) pickerView: (UIPickerView*)pView
didSelectRow:(NSInteger) row  inComponent:(NSInteger)component {
    int row1;
    int row2;
    int row3;
    
    row1 = [picker selectedRowInComponent:0];  //0列目が選択されているindex
    row2 = [picker selectedRowInComponent:1];  //1列目が選択されているindex
    row3 = [picker selectedRowInComponent:2];  //2列目が選択されているindex
    
    display.text=[NSString stringWithFormat:@"%d - %d - %d",row1,row2,row3];
}



実行するとラベルにピッカービューで選択が確定した時の0~2列目のindex番号が表示されます。


PR
コンテンツ
Macintosh初心者の館
Xcode and iOS SDKのインストール
簡単なアプリ「Hello World」を作成1
簡単なアプリ「Hello World」を作成2
簡単なアプリ「Hello World」を作成3
簡単なアプリ「Hello World」を作成4
デバッグ用にログを取る(NSLog)
文字列を操作する(NSString)
文字列の比較と検索(NSString)
文字列を数値などに変換する(NSString)
アラートの表示(UIAlertView)
配列の生成とautorelease(NSArray)
固定配列へのアクセス(NSArray)
可変な配列の生成と操作(NSMutableArray)
要素とキーを対で持つ配列(NSDictionary)
戻り値の扱い方
タイマー(NSTimer)を使用する1
タイマー(NSTimer)を使用する2
タイマー(NSTimer)を使用する3
時間を取得して計測に使う(NSDate)
iPhoneアプリのファイル操作
Text Fieldの使い方1(UITextField)
Text Fieldの使い方2(UITextField)
Text Fieldの使い方3(UITextField)
TextView(UITextView)の使い方1
PickerViewの使い方(UIPickerView)
テーブル(UITableView)の使い方1
テーブル(UITableView)の使い方2
テーブル(UITableView)の使い方3
ナビゲーションバーの使い方1
ナビゲーションバーの使い方2
ナビゲーションバーにビューを追加する1
ナビゲーションバーにビューを追加する2
ナビゲーションバーにビューを追加する3
XMLファイルを読み込む1
XMLファイルを読み込む2
XMLファイルを読み込む3
にほんブログ村 IT技術ブログ iPhoneアプリ開発へ
スポンサード リンク
忍者ブログ [PR]

Template by decoboko.jp