*

UIButtonのタイトル変更時のチラつき抑制

公開日: : 最終更新日:2014/10/07 Tips ,

久しぶりにXcode+Objective-Cでアプリを作っていたら、UIButtonのタイトルを動的に(具体的にはUIStepperの数値に合わせてタイトルを設定している)再設定しているところでチラツキが発生しているように見えるのが気になりました。

とりあえず解決方法を例によってstackoverflowで探したので、備忘的でありますが書き残しておこうと思います。
もっとも、コードだけ書けばいいような話なので、コードを置いておく程度ですが。

※stackoverflowだと「iOS7.1以降だと云々」というような話を書いてあったので、iOS7以降の話でしょうか…。

// --- UIButton* btnのタイトルを変更する
    [UIView setAnimationsEnabled:NO];
    [btn setTitle:@"(新しいタイトル)"]
    [btn layoutIfNeeded];
    [UIView setAnimationsEnabled:YES];

要するにちらつくというか、実態はUIButtonのアニメーションなので、タイトル変更の間だけアニメーションをオフにする。iOS7.1以降の場合は、さらにlayoutIfNeededメソッドも呼んでおく(呼ばないとやっぱりチラつく)ということのようです。

参考サイト

[stackoverflow]
How to stop unwanted UIButton animation on title change?

関連記事

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

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

記事を読む

UICollectionViewのヘッダとフッタの設定

UICollectionViewで慣れないのがヘッダフッタで、毎度「どうやって設定するんだっけ…」と

記事を読む

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

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

記事を読む

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

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

記事を読む

iOSシミュレータの帯域制限をテストする

iOSシミュレータで通信帯域制限をテストしたいと思ったんですが、Xcode8からXcode7.xとは

記事を読む

コードでiPhone6 Plusを識別する簡単な方法

表題の通り、コードでiPhone6 Plusを識別する簡単な方法です。 iPhone6 Plu

記事を読む

preferredContentSizeをUINavigationContorllerのPop時に再設定する

popoverで表示しているViewControllerのサイズを、他のViewController

記事を読む

CoreDataのソートとsectionNameKeyPathの関係

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

記事を読む

bitbucketをXcode5で使用する

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

記事を読む

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 ↑