1

私のアプリは、iPhone のデフォルトのアドレス帳アプリのように見えます。アルファベットごとに、アドレス帳のセクション ヘッダー (A、B . .) が灰色のグラデーションの背景色で表示されます。そのデフォルトの色を他の色合いの色にオーバーライドすることは可能ですか?

4

2 に答える 2

4
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    // create the parent view that will hold header Label
    UIView* customView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 25.0)];

    // create the button object
    UILabel * headerLabel = [[UILabel alloc] initWithFrame:CGRectZero];
    headerLabel.backgroundColor = [UIColor blackColor];
    headerLabel.opaque = NO;
    headerLabel.textColor = [UIColor whiteColor];
    headerLabel.highlightedTextColor = [UIColor whiteColor];
    headerLabel.font = [UIFont boldSystemFontOfSize:20];
    headerLabel.frame = CGRectMake(0.0, 0.0, 320.0, 22.0);

    // If you want to align the header text as centered
    //headerLabel.frame = CGRectMake(150.0, 0.0, 300.0, 44.0);

    headerLabel.text = @"Name of header";

    [customView addSubview:headerLabel];

    return customView;

}
于 2010-07-28T05:52:56.367 に答える
1

UITableViewDelegateに次のメソッドを実装することにより、UITableViewのセクションヘッダーを置き換えることができます。

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

新しい断面図が正しく表示されるように、heightメソッドも実装することをお勧めします。

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

セクションヘッダーの色を変更するには、UIImageViewを含むUIViewと、セクションのテキストのUILabelを作成します。背景をどのように表示するかについて、UIImageViewに画像を追加します。

AFAIK、断面図のtintColorを操作することはできません。

于 2010-07-27T14:30:47.903 に答える