*

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

公開日: : 最終更新日:2014/02/24 Tips , , ,

UIActionsheetを使っていて、iOS7/iPadの組み合わせで起こる不具合らしき挙動が起こった。
これがとてつもなく見栄えが悪い、というかどう考えても実用に難がありそうな表示になったのでどうにかしないといけない。
具体的にはUIactionSheetのViewがiOS7の基本である半透明の白のままだと、項目数が多すぎるときに表示がおかしくなり、shadowと思われる部分がメインと同じ色で出て、2重にブレて表示されるのである。
しかたがないのでUIActionSheetの子コンポーネントを直接弄って不透明にする必要がある。

これはUIActionSheetDelegateの実装でできるのだが、果たしてRejectせずに通るのだろうか(このコードを入れたアプリは作成中で、Appleの審査に回していない)。

- (void)willPresentActionSheet:(UIActionSheet *)actionSheet {
  actionSheet.backgroundColor = [UIColor whiteColor];
  for (UIView *subview in actionSheet.subviews) {
    subview.backgroundColor = [UIColor whiteColor];
  }
}

バグだという話はstackoverflowdではささやかれているので、直って欲しいものだ。

参照サイト:stackoverflow
http://stackoverflow.com/questions/19025852/xcode-ipad-uiactionsheet-with-many-buttons-do-not-correctly-displayed-ios7

関連記事

UITableViewCellのロングタップ

UITableViewCellをロングタップしたときに、タップされたセルを認識しつつメニューを出した

記事を読む

UITableViewのセクションヘッダをStoryboardで作る時の参考

UITableViewのセクションヘッダをカスタムして作る際に、セルと同様にプロトタイピングするため

記事を読む

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

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

記事を読む

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

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

記事を読む

ヒラギノ角ゴを使う

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

記事を読む

CALayerの管理

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

記事を読む

UIButtonのLocalizeに関するTips

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

記事を読む

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

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

記事を読む

UIButtonのappearanceで派生する色設定

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

記事を読む

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 ↑