私は UIAlertView を持っており、次を使用してフレームと境界をログに記録します。
[self.alertView show];
NSLog(@"frame: %@", NSStringFromCGRect(self.alertView.frame));
NSLog(@"bounds: %@", NSStringFromCGRect(self.alertView.bounds));
フレームと境界の幅と高さが異なることに気付きました。これはどのように可能ですか?
私は UIAlertView を持っており、次を使用してフレームと境界をログに記録します。
[self.alertView show];
NSLog(@"frame: %@", NSStringFromCGRect(self.alertView.frame));
NSLog(@"bounds: %@", NSStringFromCGRect(self.alertView.bounds));
フレームと境界の幅と高さが異なることに気付きました。これはどのように可能ですか?
UIView のフレーム、境界、中心、原点から、いつ何を使用するか?
フレーム- 通常の iPhone アプリケーションで最も頻繁に使用するプロパティです。ほとんどのコントロールは、「含む」コントロールに対して相対的に配置されるため、
frame.origin
コントロールを表示する必要がある場所に直接対応し、コントロールframe.size
の大きさを決定します。境界
UIView
- このプロパティは配置プロパティではありませんが、フレームに対する「相対」の描画可能領域を定義します。デフォルトでは、このプロパティは通常(0, 0, width, height)です。
そうは言っても、bounds
サイズがサイズと異なることは驚くことでも珍しいことでもありませんframe
。この場合、bounds
rect は よりも小さいため、frame
単に の一部のみview
が描画されていることを意味します。
また、UIAlertView
ビュー階層は見た目よりもはるかに複雑であり、iOS 7 で大きな変更が加えられたことも考慮してください。
これについてさらに言及するために、ドキュメントからのステートメントを次に示します
この
UIAlertView
クラスはそのまま使用することを意図しており、サブクラス化はサポートしていません。このクラスのビュー階層は非公開であり、変更してはなりません。
これは良い言い方です:ここにドラゴンがいます!