1

tableViewに簡単な変更を加えたいと思います。カスタムテーブルビューの背景があり、ヘッダーとフッターのテキストの色を変更したいのですが、

テキストの色のみ。

私はインターネットで通常、デリゲートメソッドを使用してテーブルビューにまったく新しいビューを与える必要があることを確認しましたが、テキストの色(および可能であればシャドウ)を変更するだけです...

新しいビュー全体を作成しないようにする簡単な方法はありますか?

私を助けてください。

ありがとうございました

4

4 に答える 4

3

カスタム文字列以外の方法でヘッダー/フッターをカスタマイズする場合は、UIViewを作成する必要があります。

これは、UITableViewDataSourceのドキュメントに記載されています。

tableView:titleForHeaderInSection:

説明 テーブルビューでは、セクションヘッダーのタイトルに固定フォントスタイルが使用されます。別のフォントスタイルが必要な場合は、代わりにデリゲートメソッドtableView:viewForHeaderInSection:でカスタムビュー(たとえば、UILabelオブジェクト)を返します。

于 2012-07-02T17:42:51.333 に答える
2

申し訳ありませんが、ヘッダーのフォントの色をカスタマイズする唯一の方法は、delegateメソッドでUIViewを作成することです。

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

ここに投稿された回答を見ると、これをアプリケーションに実装する非常に簡単な方法がわかります。その関数をコピーしてテーブルビューのデータソースに貼り付けてから、UILabelプロパティを希望どおりに変更するだけです。

簡単に参照できるように、その投稿のコードは次のとおりです。

Originally posted by Harsh:

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *tempView=[[UIView alloc]initWithFrame:CGRectMake(0,200,300,244)];
    tempView.backgroundColor=[UIColor clearColor];

    UILabel *tempLabel=[[UILabel alloc]initWithFrame:CGRectMake(15,0,300,44)];
    tempLabel.backgroundColor=[UIColor clearColor]; 
    tempLabel.shadowColor = [UIColor blackColor];
    tempLabel.shadowOffset = CGSizeMake(0,2);
    tempLabel.textColor = [UIColor redColor]; //here u can change the text color of header
    tempLabel.font = [UIFont fontWithName:@"Helvetica" size:fontSizeForHeaders];
    tempLabel.font = [UIFont boldSystemFontOfSize:fontSizeForHeaders];
        tempLabel.text=@"Header Text";

    [tempView addSubview:tempLabel];

    [tempLabel release];
    return tempView;
}
于 2012-07-02T19:18:18.267 に答える
0

UIViewを渡すサブクラスなしでヘッダー/フッターを設定した場合NSString、現在、を作成せずに目的を達成することはできませんUIView

于 2012-07-02T17:42:27.963 に答える
0
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
    let headerView = view as! UITableViewHeaderFooterView
    headerView.textLabel?.textColor = ...
}

このラベルに属性付きテキストを設定することもできます

于 2021-07-07T10:07:22.713 に答える