UITableView セクション ヘッダーのフォント サイズを変更する 質問する

UITableView セクション ヘッダーのフォント サイズを変更する 質問する

UITableView セクション ヘッダー内のテキストのフォント サイズを変更する最も簡単な方法を教えていただけますか?

セクション タイトルは次の方法で実装しました。

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

次に、この方法を使用してセクション ヘッダーの高さを正常に変更する方法を理解します。

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

このメソッドを使用して UITableView セルにデータを入力します。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

しかし、セクション ヘッダー テキストのフォント サイズ (またはフォント スタイル) を実際に大きくする方法がわかりません。

誰か助けてくれませんか? ありがとう。

ベストアンサー1

UITableViewDelegateこれを行う別の方法は、メソッドに応答することですwillDisplayHeaderView。渡されたビューは、実際には のインスタンスですUITableViewHeaderFooterView

以下の例では、フォントを変更し、タイトル テキストをセル内で垂直方向と水平方向に中央揃えします。heightForHeaderInSectionヘッダーの高さの変更がテーブル ビューのレイアウトに反映されるように、 にも応答する必要があることに注意してください (つまり、この方法でヘッダーの高さを変更することにした場合willDisplayHeaderView)。

その後、メソッドに応答してtitleForHeaderInSection、この構成されたヘッダーを異なるセクション タイトルで再利用できます。

オブジェクティブC

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section {
    UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view;

    header.textLabel.textColor = [UIColor redColor];
    header.textLabel.font = [UIFont boldSystemFontOfSize:18];
    CGRect headerFrame = header.frame;
    header.textLabel.frame = headerFrame;
    header.textLabel.textAlignment = NSTextAlignmentCenter;
}

スウィフト1.2

(注: ビュー コントローラが の子孫である場合はUITableViewController、 として宣言する必要がありますoverride func。)

override func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) 
{
    let header:UITableViewHeaderFooterView = view as! UITableViewHeaderFooterView

    header.textLabel.textColor = UIColor.redColor()
    header.textLabel.font = UIFont.boldSystemFontOfSize(18)
    header.textLabel.frame = header.frame
    header.textLabel.textAlignment = NSTextAlignment.Center
}

スウィフト3.0

このコードは、ヘッダー ビューが UITableViewHeaderFooterView 以外の場合にアプリがクラッシュしないことも保証します。

override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
    guard let header = view as? UITableViewHeaderFooterView else { return }
    header.textLabel?.textColor = UIColor.red
    header.textLabel?.font = UIFont.boldSystemFont(ofSize: 18)
    header.textLabel?.frame = header.bounds
    header.textLabel?.textAlignment = .center
}

おすすめ記事