我已经在xCode 5中创建了新的iOS项目,其部署目标为6.0,并且应用Pin限制[底层空间到superview],使AutoLayout适用于iOS 7以及iOS 6.0,具有不同的设备,但
当我选择“查看为:”选项时:iOS 7.0&后来的Button看起来像是
然后当我更改选项“View as:”时:iOS 6.0&之前按钮看起来像
如何管理constrait这样适用于iOS 6.0& iOS 7.0都是?
提前致谢!!
答案 0 :(得分:6)
我的故事板上有类似的问题,我搜索了很多没有希望,最终删除了所有限制:
编辑 - >解决自动布局问题 - >清除视图控制器中的所有约束
然后重新排序,这解决了我的大多数问题。
首先来自Apple Transition Guide:
如果商业原因要求您继续支持iOS 6或 之前,您需要选择最实用的方式来更新应用 对于iOS 7.您选择的技术可能会有所不同,但整体而言 建议保持不变:首先,重点关注重新设计iOS应用程序 7.然后,根据需要将更改带到iOS 6版本。
这意味着您可能会遇到以前iOS版本中的一些问题,尤其是布局问题,您需要在iOS7
下重新布置控件,然后在iOS6
下对其进行测试。
答案 1 :(得分:0)
我正在开发一个在iOS 6和iOS 7上运行的应用程序。我的一些按钮在iOS 6和iOS 7上显示相同,有些在iOS 6上看起来垂直较小但在iOS 7上正常我看了,差异似乎是在保持尺寸的按钮上,我正在使用这样的背景图像。
//...background button images are 33wx44h and 66wx88h. these correspond to the
// two name variations; <name>.png and <name>@2x.png. the former is used for
// standard resolution screens and the latter for retina screens.
// the UIEdgeInsetsMake is specifically set to 0, 16, 0, 16 (tp,lf,by,rt) so
// that we have no vertical stretching because Apple's preferred button size,
// vertically, is 44. horizontally, the button is 33w and we lock 16 from
// the left and 16 from the right to leave only a single vertical row of pixels
// to be stretched horozontally; which is the most efficient; processing wise.
UIEdgeInsets insets = UIEdgeInsetsMake( 00.0f,16.0f,00.0f,16.0f ); // tp,lf,bt,rt
UIIMage * btnImage = [[UIImage imageNamed: myImage ]
resizableImageWithCapInsets: insets];
[button setBackgroundImage: btnImage
forState: UIControlStateNormal];
我认为在我的情况下,我可以将背景图像放入其中,即使它是透明的,也可以保持相同的外观。
希望有所帮助。