*

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

関連記事

AVAudioPlayerの初回再生遅延

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

記事を読む

Bitbucket課題の記法サンプル

Bitbucketの課題、およびwikiで利用できる記法についての記事です。 利用できる記法に

記事を読む

アプリ内で自動スリープの設定を無効化する

「設定」アプリ内で設定したスリープ時間設定を無効にするためのコード。 アプリがバックグラウンドにな

記事を読む

bitbucketをXcode5で使用する

bitbucketは無償で5人までの少人数チーム用のクローズド(非公開)リポジトリを作成できるため、

記事を読む

UIButtonのLocalizeに関するTips

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

記事を読む

CALayerの管理

CALayerはNSKeyValueCodingを実装している(Core Animation Ext

記事を読む

UIActionSheetの文字がブレて多重表示される

UIActionsheetを使っていて、iOS7/iPadの組み合わせで起こる不具合らしき挙動が起こ

記事を読む

UISplitViewControllerの仕切り線の色を設定

UISplitViewControllerで、iPadを横向き(Landscape)にしたときの2つ

記事を読む

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

回転によりサイズが可変するUITextViewで、縦向き(ポートレイト)から横向き(ランドスケープ)

記事を読む

User Defined Runtime Attributeについての覚書

UILabelに上下左右のパディングをつける方法を探して、結局「自分で以下のようなメソッドを持った拡

記事を読む

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

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

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

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

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

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

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

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

NXDrawKitを導入してみる

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

→もっと見る

    PAGE TOP ↑