TableViewCellをカスタマイズする方法を知っています。
TableViewセルをカスタマイズする多くのアプリケーションを見てきました。
同様に、TableView Section Headerをカスタマイズしたい
「仮定-セクション名は異なるフォントである必要があり、異なる背景画像などがある」
どのように可能ですか?
どの方法でコードを実装する必要がありますか?
通常の方法を使用する代わりに
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
あなたはこれを実装したい:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
ご覧のように、2つ目はテキストの単なる文字列ではなくUIViewを返します。したがって、独自のビューを(ラベルなどで)カスタマイズして返すことができます。
これを行う方法の例を次に示します(上記のメソッドで実装される)。
// create the parent view that will hold header Label
UIView* customView = [[[UIView alloc] initWithFrame:CGRectMake(10,0,300,60)] autorelease];
// create image object
UIImage *myImage = [UIImage imageNamed:@"someimage.png"];;
// create the label objects
UILabel *headerLabel = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
headerLabel.backgroundColor = [UIColor clearColor];
headerLabel.font = [UIFont boldSystemFontOfSize:18];
headerLabel.frame = CGRectMake(70,18,200,20);
headerLabel.text = @"Some Text";
headerLabel.textColor = [UIColor redColor];
UILabel *detailLabel = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
detailLabel.backgroundColor = [UIColor clearColor];
detailLabel.textColor = [UIColor darkGrayColor];
detailLabel.text = @"Some detail text";
detailLabel.font = [UIFont systemFontOfSize:12];
detailLabel.frame = CGRectMake(70,33,230,25);
// create the imageView with the image in it
UIImageView *imageView = [[[UIImageView alloc] initWithImage:myImage] autorelease];
imageView.frame = CGRectMake(10,10,50,50);
[customView addSubview:imageView];
[customView addSubview:headerLabel];
[customView addSubview:detailLabel];
return customView;
それが役に立てば幸い