*

UIButtonのappearanceで派生する色設定

公開日: : 最終更新日:2014/11/27 Tips , , ,

以下のコードでUIButtonのappearanceでBackgroundColorの設定をすると、背景色の設定を一括で行えて嬉しいのですが、UIBarButtonItemやUITableViewCellのアクセサリ(チェックボタンなど)まで影響が波及するのでちょっと困りものです。

    [[UIButton appearance] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage redColor]]];

そこで、UIBarButtonItemやUITableViewCellのアクセサリは、特定のViewControllerの下にあることが確定しているのを利用してappearanceの上書きを行います。上のコードの直後に以下のコードを書き足す感じです。

    [[UIButton appearanceWhenContainedIn:[UINavigationBar class], nil] setBackgroundColor:[UIColor clearColor]];
    [[UIButton appearanceWhenContainedIn:[UITableViewCell class], nil] setBackgroundColor:[UIColor clearColor]];

UIBarButtonItemはわかりやすいのですが、UITableViewCellのチェックマーク(アクセサリ)の背景色が変わった時には難儀しました(というかあれがUIButtonだったとは知りませんでした)。調べたらUITableViewCellのサブビューだったので、上記のように書いて解決できたのが幸いです。
他の部分(ツールバーなど)も同様にすれば問題は解決すると思います。

関連記事

UIActionSheetが消えるときにキーボード表示/非表示通知が来る

 UITextViewやUITextField編集中にアクションシートを表示すると、アクションシート

記事を読む

UICollectionViewが画面回転した時にレイアウトが崩れた時の対応

UICollectionViewCellのサイズを、内容に合わせて動的に変えた時に起こる問題に関して

記事を読む

UITableViewのセルセパレータが画像の下部分だけ切れる場合の対応

iOS7のUItableViewCellだと、UITableView.imageViewに画

記事を読む

ヒラギノ角ゴを使う

小ネタですが存外調べるのが面倒だった項目なので覚書しておきます。 ヒラギノ角ゴシック体を使うた

記事を読む

UIButtonのLocalizeに関するTips

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

記事を読む

”No Scheme”になってしまった場合の対応

知人がXcodeで突然「No Scheme」表示になってRunするターゲットとデバイスが選択できない

記事を読む

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

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

記事を読む

CoreDataのソートとsectionNameKeyPathの関係

CoreDataをフェッチするときに、indexPathのsectionにできるsectionNam

記事を読む

Bitbucket課題の記法サンプル

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

記事を読む

UISegmentedControlに見栄え良く背景色を設定する

UISegmentedControlをiOS7で使おうとすると、基本の背景色が「透明」になりますが、

記事を読む

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

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

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

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

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

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

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

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

NXDrawKitを導入してみる

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

→もっと見る

    PAGE TOP ↑