トリッキーな不具合が発生しています。
UIViewController
新しいサブクラスを作成したときに XCode によって作成された .xib があります。UIButton
いくつかの 、多数の 、内部に他のいくつかのビューを含むUILabel
小さな、ほとんど透明な画像を含む など、かなりの数の要素があります。UIView
UIImageView
ではviewDidLoad
、 の背景色をUIImageView
パターン画像を使った色に設定しています。
このビュー コントローラーをシミュレーターまたは iPhone 4 (両方とも iOS 5.1 を実行) で表示すると、すべてがスムーズに進みます。パターン化された背景が表示され、すべての相互作用が機能します。
しかし、iOS 4.3 で (シミュレーターまたは iPod Touch 2G で) テストすると、コンセント ([self.myBackgroundImageView setBackgroundColor...]
または など[self.mySegmentedControl setEnabled:NO]
) に基づいて操作しようとしているすべてのものがまったく機能しないように見えます。
ビューが表示されたときに私が行っている唯一の漠然とした珍しいことはこれです。これにより、ポップオーバーで適切にサイズが調整されます。
- (void) viewWillAppear:(BOOL)animated {
CGSize size = CGSizeMake(320, 480); // size of view in popover
self.contentSizeForViewInPopover = size;
[super viewWillAppear:animated];
}
問題になる可能性のあるものは他に考えられません。私はすべてのものを掃除し、再構築しました。まだサイコロはありません。
他の誰かがこれに遭遇しましたか?
ottによるリクエストごとの更新:
-viewDidLoad の最後に以下を追加しました。
NSLog(@"self.myBackgroundImageView = %@ | %@", [self.myBackgroundImageView description], [[self.myBackgroundImageView backgroundColor] description]);
...出力は次のとおりです。
self.myBackgroundImageView = <UIImageView: 0x6d48c80; frame = (0 0; 320 480); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x6d48b60>> | <UIImageView: 0x5f459b0; frame = (0 0; 320 480); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x5f45890>> // kCGColorSpaceModelPattern 1
だから...ゼロではありません。ここに何の話があるのかわからない。
更新 2: iOS 4.3 で UISegmentedControl を無効にしてもディスプレイが暗くならないようです。背景パターン画像に関しては、これの確認は見つかりませんが、iOS 4 のバグであり、パターン画像 UIColor を使用して背景色が UIImageView で正しく表示されないのではないかと考え始めています。UIImageView の背景をクリアにし、代わりにメイン ビューの背景としてパターン イメージ UIColor を配置すると、正常に動作します。回避策、またはこれが実際に iOS 4 のバグであるという確認を誰かが思いついた場合は、大いに感謝します。