3

私には独特の状況があります。

テーブルヘッダーセクションのカスタムヘッダーテキストを表示したいのですが、カスタムヘッダーセクションの単色の代わりに、デフォルトのヘッダーセクションフレームグラデーションが必要です。(添付画像をご覧ください)

ここに画像の説明を入力

viewForHeaderInSectionメソッドで行っていることは次のとおりです。

- (UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    UIView *customSectionHeaderView;
    UILabel *titleLabel;

    customSectionHeaderView = [[UIView alloc] initWithFrame:CGRectMake(20, 0, tableView.frame.size.width, 24)];
    titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(15, 0, tableView.frame.size.width, 24)];
    titleLabel.textAlignment = UITextAlignmentLeft;
    [titleLabel setTextColor:[UIColor blackColor]];
    [titleLabel setBackgroundColor:[UIColor clearColor]];
    titleLabel.font = [UIFont boldSystemFontOfSize:15];
    titleLabel.text =  self.sortedPaths[section];

    [customSectionHeaderView addSubview:titleLabel];

    return customSectionHeaderView;
}

取り除くことで

customSectionHeaderView = [[UIView alloc] initWithFrame:CGRectMake(20, 0, tableView.frame.size.width, 24)];

結果を取得することはできますが、サブビューを追加してビューを返すことはできません。

そのグラデーション効果を実現するにはどうすればよいですか?

4

1 に答える 1

1

tableView:titleForHeaderInSection:代わりに使用しないのはなぜですか?これにより、まさにあなたが話していることがわかります。つまり、テキストが置換されたデフォルトのヘッダーです。

もちろん、独自のグラデーションを描画することもできます。iOS には優れたグラデーション描画メソッドがあります。

于 2012-12-24T18:59:52.963 に答える