我试图为我的 .xib 文件中的视图添加使用自动布局功能,目标是根据正确的屏幕尺寸调整视图。
当我将自动布局添加到视图并设置自由格式并将视图大小更改为 568 时,视图在 iPhone 5 模拟器上看起来正确,但是当尝试按下底部的按钮时,如果我在 iPhone 4 上运行相同的应用程序,它们将不起作用视图看起来正确并且按钮正在工作。
我错过了什么?任何人都知道教程或我在哪里可以找到如何在没有自动布局的情况下转换常规 xib 工作的信息?
我试图为我的 .xib 文件中的视图添加使用自动布局功能,目标是根据正确的屏幕尺寸调整视图。
当我将自动布局添加到视图并设置自由格式并将视图大小更改为 568 时,视图在 iPhone 5 模拟器上看起来正确,但是当尝试按下底部的按钮时,如果我在 iPhone 4 上运行相同的应用程序,它们将不起作用视图看起来正确并且按钮正在工作。
我错过了什么?任何人都知道教程或我在哪里可以找到如何在没有自动布局的情况下转换常规 xib 工作的信息?
您的按钮可能不在他们的超级视图之上。您需要将按钮的超级视图限制在超级视图的底部。
不幸的是,没有看到任何东西,除此之外很难为您提供任何帮助。
我遇到了同样的问题。就我而言:
self.view
\- ...
\_self.wrapper
\_self.button
代码不起作用:
NSDictionary *metrics = @{@"padding":[NSNumber numberWithFloat:kGridPadding]};
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[head]-padding-[wrapper]-|" options:0 metrics:metrics views:views]];
原因是 'wrapper' 的高度为 0,尽管按钮仍然可见。所以它可以通过提供足够的宽度和高度来修复,如下所示:
NSDictionary *metrics = @{@"padding":[NSNumber numberWithFloat:kGridPadding],
@"screenHeight":[NSNumber numberWithFloat:self.view.bounds.size.height]};
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[head]-padding-[wrapper(screenHeight)]-|" options:0 metrics:metrics views:views]];
--> 更好的办法是让wrapper的高度自动增加,但我现在不知道怎么做?