*

UITableViewのヘッダに小文字を入れる

公開日: : 最終更新日:2014/05/23 Tips , , ,

UITableViewのセクションヘッダをStoryboardでカスタマイズするという話題を以前掲載しましたが、今回はtableView:titleForHeaderInSection:メソッドを使ってコード内で文字列をヘッダとして使う場合の話題です。

問題点

tableView:titleForHeaderInSection:では、戻り値にNSStringを指定してやるとフォーマットに沿ったスタイルでヘッダテキストを作ってくれるのですが、英字を入れると全て大文字で表示されます。軽く調べてみるとiOS7からの変更のようです。
そこで、文字列を入れるタイミングを別のメソッドで行います。具体的には、表示直前に実行されるtableView:willDisplayHeaderView:forSection:メソッドで、表示する文字列をすり替えにかかります。
ただし、このメソッドはtableView:titleForHeaderInSection:でnil以外の文字列が設定されているセクションに対して実行されるようなので、tableView:titleForHeaderInSection:の側では適当なダミー文字列を設定する必要があります。

サンプル

-(NSString*)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
    // セクションタイトル
    // --- この段階ではダミー文字列を入れる
    return @" ";
}

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section{
    if([view isKindOfClass:[UITableViewHeaderFooterView class]]){
        UITableViewHeaderFooterView *tableViewHeaderFooterView = (UITableViewHeaderFooterView *) view;
        tableViewHeaderFooterView.textLabel.text = <strong>(表示したい文字列)</strong>;
    }
}

表示するのが日本語などの全角文字列であれば、問題は発生しないと思いますが、Localizedする場合などがある場合は気をつけたいところです。

参考サイト

Stackoverfrow
http://stackoverflow.com/questions/18912980/uitableview-titleforheaderinsection-shows-all-caps

関連記事

StoryboardからPopoverを作っても位置合わせコードは必要

これだけだとわかりづらいんですが。 XcodeのStoryboardから、Segueを"Prese

記事を読む

NSAttributedStringをローカライズする方法

NSAttributedStringをLocalizeするうまい方法はないものかと探したら、これが手

記事を読む

UIButtonのLocalizeに関するTips

Storyboardに設置したUIButtonのタイトルのLocalizeをしてたのですが、英語では

記事を読む

AdMob組み込み覚書

書籍ではコレがかなり参考になるのでご紹介。 表題の通りで、組み込みで要注意っぽい部分だけを

記事を読む

iPadのUIModalPresentationFormSheetでキーボードが閉じない

iPadでUIModalPresentationFormSheet(全画面ではなく、中央にフロートし

記事を読む

UIButtonのappearanceで派生する色設定

以下のコードでUIButtonのappearanceでBackgroundColorの設定をすると、

記事を読む

iOS6時代のアプリのiOS7への対応

やや古い情報になるが、iOS7対応に関して自分がやったことの覚え書き。いろんな所から拾って来た情

記事を読む

iOS9でのNSFetchedResultsContollerDelegateの挙動

ハマったので短いながらメモしたいと思います。 NSFetchedResultsContollerD

記事を読む

AVAudioPlayerの初回再生遅延

ちょっとした効果音の再生にAVAudioPlayerを使っているのですが、どうも初回の効果音ロードの

記事を読む

Xcode5.1のInterfaceBuilderにおける地味な変更点

iOS7.1に合わせてXcode5.1がリリースされました Xcode Release N

記事を読む

Xcode10からのimage literal / color literalの指定方法

アセットにあるUIImageの直接指定が可能なImage litera

Xcode11でのバージョン番号の取得方法

Xcode11になってバージョン番号をスクリプトから得て自動で更新する

GoogleスプレッドシートからCSVにエクスポートしたデータを得る方法

情報がない中さんざ苦労しましたが、Googleスプレッドシート(の最初

画面回転をしたあとに、UITextViewの先頭を表示する

回転によりサイズが可変するUITextViewで、縦向き(ポートレイト

NXDrawKitを導入してみる

ACEDrawingViewがObj-Cで書かれていて、いまいちメンテ

→もっと見る

    PAGE TOP ↑