2

我创建了一个单视图测试应用程序,并在主故事板中添加了一个and UIButton。我已经调整了按钮和视图的大小以具有相同的大小。UIViewUIViewController

在此处输入图像描述

在我的 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's UIVIewtopmost 未选中“Autoresize Subviews”(尽管这两种方式都没有区别)。

(Xcode 4.5.2。iOS 6.0)

谢谢, CS

在此处输入图像描述

4

1 回答 1

1

单击显示布局中的“应用 Retina 4 Form Factor”按钮。您为 Retina 4 设置了此设置,因此在模拟器中运行时屏幕大小调整为 3.5。您可以通过运行 iPhone5 模拟器(Retina 4 英寸)来验证这一点。将外形尺寸切换为 3.5 英寸后,您会注意到高度变为 12 英寸。

在此处输入图像描述

于 2012-12-05T14:26:44.893 回答