tableViewに簡単な変更を加えたいと思います。カスタムテーブルビューの背景があり、ヘッダーとフッターのテキストの色を変更したいのですが、
テキストの色のみ。
私はインターネットで通常、デリゲートメソッドを使用してテーブルビューにまったく新しいビューを与える必要があることを確認しましたが、テキストの色(および可能であればシャドウ)を変更するだけです...
新しいビュー全体を作成しないようにする簡単な方法はありますか?
私を助けてください。
ありがとうございました
tableViewに簡単な変更を加えたいと思います。カスタムテーブルビューの背景があり、ヘッダーとフッターのテキストの色を変更したいのですが、
テキストの色のみ。
私はインターネットで通常、デリゲートメソッドを使用してテーブルビューにまったく新しいビューを与える必要があることを確認しましたが、テキストの色(および可能であればシャドウ)を変更するだけです...
新しいビュー全体を作成しないようにする簡単な方法はありますか?
私を助けてください。
ありがとうございました
カスタム文字列以外の方法でヘッダー/フッターをカスタマイズする場合は、UIViewを作成する必要があります。
これは、UITableViewDataSourceのドキュメントに記載されています。
tableView:titleForHeaderInSection:
説明 テーブルビューでは、セクションヘッダーのタイトルに固定フォントスタイルが使用されます。別のフォントスタイルが必要な場合は、代わりにデリゲートメソッドtableView:viewForHeaderInSection:でカスタムビュー(たとえば、UILabelオブジェクト)を返します。
申し訳ありませんが、ヘッダーのフォントの色をカスタマイズする唯一の方法は、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;
}
UIView
を渡すサブクラスなしでヘッダー/フッターを設定した場合NSString
、現在、を作成せずに目的を達成することはできませんUIView
。
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
let headerView = view as! UITableViewHeaderFooterView
headerView.textLabel?.textColor = ...
}
このラベルに属性付きテキストを設定することもできます