単一ビューのテスト アプリを作成し、メイン ストーリーボードにUIButton
とUIView
を追加しました。UIViewController
ボタンとビューの両方のサイズを同じサイズに変更しました。
私の VC の -viewDidAppear:animated メソッドで、ボタンとビューのフレームと境界をダンプします。
- (void)viewDidAppear:(BOOL)animated
{
NSLog(@"button bounds: %@", NSStringFromCGRect(self.theButton.bounds));
NSLog(@"button frame: %@", NSStringFromCGRect(self.theButton.frame));
NSLog(@"view bounds: %@", NSStringFromCGRect(self.theView.bounds));
NSLog(@"view frame: %@", NSStringFromCGRect(self.theView.frame));
}
そして、シミュレーターで実行したときの出力は次のとおりです。
button bounds: {{0, 0}, {100, 100}}
button frame: {{110, 72}, {100, 100}}
view bounds: {{0, 0}, {100, 12}}
view frame: {{110, 179}, {100, 12}}
デバイスで実行する場合:
button bounds: {{0, 0}, {100, 100}}
button frame: {{110, 72}, {100, 100}}
view bounds: {{0, 0}, {100, 100}}
view frame: {{110, 179}, {100, 100}}
シミュレーターで実行しているときにビューが 12 の高さを報告する理由がわかりません。ビューはシミュレーターでは正しく描画されませんが、デバイスで実行すると期待どおりに描画されます。UIViewController
の一番上UIVIew
には「Autoresize Subviews」がチェックされていないことに注意してください(ただし、どちらの方法でも違いはありません)。
(Xcode 4.5.2. iOS 6.0)
ありがとう、CS