我已经离开 iOS 开发一段时间了,我遇到了障碍。
我的一个应用程序有一个 UIImageView 图形,然后我有覆盖视觉效果的按钮。除了自动布局之外,我能够让一切正常工作。
如果我将笔尖设置为 3.5 并在 3.5 模式下运行模拟器,一切都会很好。如果我在 4.0 模式下运行它,按钮都会移动。这也适用于与此相反的情况。
我不确定如何绕过移动的按钮。有没有办法或者应该有2个笔尖?
如果您不使用 IB,那么您将获得基于此的视图和布局的大小。
我通常对verticalOffset (NSInteger) 使用单个值,并基于Y 值使用不同的值倍数,具体取决于界面元素。
CGRect screenBounds = [[UIScreen mainScreen] bounds];
if (screenBounds.size.height == 568) { // iPhone 5
verticalOffset = 20;
} else {
verticalOffset = 0;
}
如果将来 Apple 发布 768 像素高度的 iPhone 5.5(我开玩笑.. 哈!)
您只需要添加一个新的 verticalOffset 值,视图就会自动填充新的大小。
CGRect screenBounds = [[UIScreen mainScreen] bounds];
if (screenBounds.size.height == 768) { // iPhone 5.5
verticalOffset = 30;
} else if (screenBounds.size.height == 568) { // iPhone 5
verticalOffset = 20;
} else {
verticalOffset = 0;
}
如果您想支持旧 iOS 版本,IB/iPhone的简单方法是关闭自动布局
并关闭最高值的自动调整大小。
在 IB 中为 iPhone 5 布局视图,当您使用 iPhone 3.5in 时,所有界面元素将挤入 3.5in 大小(确保在以较高尺寸布局时留出足够的空白)
在 3.5 英寸屏幕上开发,但启用 autoLayout。浏览视图中的每个项目并调整自动调整大小。- 选择项目 - 通过在界面生成器中放大/缩小,向下到白色箭头所在的位置。单击看起来像 H 的小按钮。 - 这将允许您调整每个项目的调整