UITableViewのヘッダに小文字を入れる
公開日:
:
最終更新日:2014/05/23
Tips iOS7, UITableView, UITableViewHeaderFooterView, Xcode
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
関連記事
-
-
メソッドの呼び出し元を調べる
特定のメソッドに関して、そのメソッドをコールしているメソッド群を調べるための手順。 (1)調べたい
-
-
iOS8のシミュレーターでLocalizationのテストをする
iOS8.1のシミュレーターでは、従前できていたシミュレーター内での「設定」(Setting)からの
-
-
UIButtonのappearanceで派生する色設定
以下のコードでUIButtonのappearanceでBackgroundColorの設定をすると、
-
-
App Storeのページにアプリケーションから直接アクセスする方法
去年(2013年)の秋ごろ、iOS7の出始めの時期に書かれたblog記事などを参考にすると、iOS6
-
-
GoogleスプレッドシートからCSVにエクスポートしたデータを得る方法
情報がない中さんざ苦労しましたが、Googleスプレッドシート(の最初のシート)をCSVとしてエクス
-
-
FormSheetでModalに表示させたビューの高さを変更する
iPadにおいて、FormSheetでModal表示させたビューの高さを変えたい場合の記事。 この
-
-
iOSシミュレータの帯域制限をテストする
iOSシミュレータで通信帯域制限をテストしたいと思ったんですが、Xcode8からXcode7.xとは
-
-
preferredContentSizeをUINavigationContorllerのPop時に再設定する
popoverで表示しているViewControllerのサイズを、他のViewController
-
-
バージョンアップ版があることを通知する
拍子抜けするほど簡単だったので、「アプリのバージョンアップの通知をどうするか」という話についてTip
-
-
UIAlertControllerの取り扱い
旧聞ですが日本語版のStackOverflowが始動したようですね。 個人的な印象は「フィルタされ
- PREV
- UILabelの改行をInterfaceBuilderから入力する
- NEXT
- ヒラギノ角ゴを使う
