【火曜日】ピッカービューの続きとファイルの読み書き
午前の授業。
前回の続きでピッカービューの勉強。
教科書のとおりにソースを入力するんだけど、教科書のコードの記述が微妙とのことで先生が修正を入れたものを見ながら入力した。
しかし、どうしてその修正が必要なのかが分からなかった。
うーん。先生に聞いてもたぶん意味が理解できそうにないので聞くのはやめよう。よくないことだけど…
▼へー、これ、ピッカービューって名前だったんだ
これもテーブルビューと同じで、見えてない部分に関してはその都度読み込まれるらしい。
▼表示ボタンを押すとアラートが出る
次に、もうちょっと簡単なピッカービュー(文字フォントの見た目を変えない)の勉強。
▼こういうかんじにフォントの見た目はそのまま
↓コードはこんなかんじ。さっきはこう書いていたけど、
-(UIView*)pickerView:(UIPickerView*)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView*)view { // セルの生成 UIView* cell = [[[UIView alloc]initWithFrame:CGRectMake(0,0,280,30)]autorelease]; // ラベルの生成 NSString* fontName=[_items objectAtIndex:row]; UILabel* label=[[[UILabel alloc]init]autorelease]; label.Frame=CGRectMake(0,0,280,40); label.Font=[UIFont fontWithName:fontName size:18]; label.backgroundColor=[UIColor clearColor]; label.Text=fontName; [cell addSubview:label]; return cell; }
↓これだけ書けばOKらしい
-(NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { return [_items objectAtIndex:row]; }
次に、ドラムの数を増やす勉強。
▼こういうかんじに
↓ドラム1つの場合
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)_pickerView { return 1; }
↓ドラム3つの場合
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)_pickerView { return 3; }
※ドラムが複数の場合はドラム番号を指定する必要があるらしい
次にドラムの幅を変える勉強。
▼こういうかんじに
下記コードを追加するだけ(numberOfComponentsInPickerViewメソッドのドラムの数と合わせてね)
-(CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component { if( component == 0 ) { return 50; } else { return 250; } }
次に、フォントビューワーを作る課題を よーい、どん。
途中までできたけど苦戦…
午後の授業開始。
さっきの続き。
下部に配置するフォント見本のテキストが表示できなくて隣人に聞いてなんとか完成。
とても頼れる隣人。ちゃんと内容を理解している素晴らしい隣人です。
▼ こういうかんじに
▼ピッカービューをクリックすると下部のフォントの見た目が変わる
この課題のソースコードは長いので割愛させていただきます。
ソースを全部載せると先生に見つかった時に怒られそうなので…すんません。
次に、ファイルの読み書きを勉強。
先生が説明をしている間、またウトウトしてしまった。というか、寝てしまった。
忘れた頃にやってくるので気を付けよう。
そして早く寝よう。7時間は寝たいものだ。
で、教科書のソースを打つ。
授業終了。
明日からの授業はストーリーボードを簡単なやり方で作る?らしい。
今日覚えたことメモ。
@propertyで書いたインスタンスを使うときはアンダースコアを付けないとだめらしい。
たとえば、
@property(retain,nonatomic) UINavigationBar *navBar;
と書いたら、
_navBar = [[[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)] autorelease];
と書く。
以下、要復習。
・@property(retain,nonatomic) UINavigationBar *navBar; の nonatomic ってなんぞ?