如何在Interface Builder中为3.5“和4”Retina定位视图?
我想定位一个UIView,使它出现在3.5英寸和4英寸Retina屏幕的中央。 做这个的最好方式是什么? 如果我关闭所有自动调整条,我希望它与屏幕中心对齐,但这似乎不会发生。
我很高兴使用新的Autolayout,但我不知道怎么做才能做到这一点。
按照以下步骤操作XIB,您应该正确调整视图大小:
-
为了实现无缝的iOS4兼容性,首先将顶视图尺寸设置为Retina 3.5尺寸。
-
删除顶视图的size参数并将其设置为“none”。 您现在应该具有正确大小的主视图,但没有固定的设置大小选项。
-
在“尺寸检查器”选项卡下的顶视图中垂直打开所有自动resize。
-
对于每个子视图,请执行以下操作
- 选择视图并转到“大小检查器”选项卡
- 选择排列(垂直居中或对齐)
- 如果要将其居中,请在“自动resize”框中删除两个对齐标记。 如果您希望它“粘滞”,请选择其中一个,如果您希望它填充父级,请选择它们。
- 通过突出显示或取消突出显示垂直“双向箭头”,选择是否应相对resize
- 确保所有元素都位于3.5英寸视图中的预定位置 – 这对于在iOS4上工作至关重要。
-
保存更改。 选择顶视图并选择尺寸:“Retina 4 Full Screen”,检查您的自动调整是否成功。 执行此操作时,您的视图应该看起来像您的预期结果。
-
撤消5中的更改(以便xib中的视图再次具有3.5大小,但“大小”选项设置为“无”,保存并运行您的应用程序。
这也适用于iOS4,因为视图的大小已经适用于Retina 3.5,因此不会对较旧的屏幕尺寸使用自动resize。
在某些情况下,不可能为所有元素获得精确正确的尺寸/定位。 在这些情况下,您需要以编程方式更改4“屏幕大小的视图大小位置。
要使用autolayout在IB的父(容器)视图中居中视图:
- 选择你的视图
- 转到菜单,然后选择编辑器 – >对齐 – >水平/垂直中心在容器中选项
但是,只有当您支持iOS 6及更高版本时才能使用自动布局,如果您定位早期的操作系统版本,则必须使用其他方法(例如,使用Eric建议的代码设置居中视图)
以下是您手动执行此操作的方法(不使用AutoLayout):
int screenWidth = [[UIScreen mainScreen] applicationFrame].size.height; int screenHeight = [[UIScreen mainScreen] applicationFrame].size.width; UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0,0,100,200)]; [myView setCenter:CGPointMake(screenWidth/2, screenHeight/2)]; [self.view addSubview:myView];
- Swift 3中的Singleton
- 在故事板中将Segue自动拖拽到Self中
- 通过SDK获取本地iPhone号码
- Swift – 压缩video文件
- 如何在我的“第三方服务器”上validationGKLocalPlayer?
- Xcode5:无法注册“/System/Library/CoreServices/CoreTypes.bundle/Contents/Library/MobileDevices.bundle
- iTunes Connect中的分阶段发行
- 使用UICollection视图聊天UI
- 编译失败:ld:重复的符号_OBJC_CLASS _ $ _ Algebra5FirstViewController