如何管理适用于iOS 7&;的自动布局约束;iOS 6.0两者都有
我已经在xCode 5中创建了新的iOS项目,部署目标为6.0,并应用Pin约束[Bottom space to superview],使自动布局适用于iOS 7以及iOS 6.0的不同设备,但 当我选择选项“查看方式:”时:iOS 7.0及更高版本按钮如下所示 然后,当我更改选项“查看方式:”:iOS 6.0及更早版本时,按钮如下所示 我如何管理构造,使其同时适用于iOS 6.0和iOS 7.0如何管理适用于iOS 7&;的自动布局约束;iOS 6.0两者都有,ios,ios6,ios7,Ios,Ios6,Ios7,我已经在xCode 5中创建了新的iOS项目,部署目标为6.0,并应用Pin约束[Bottom space to superview],使自动布局适用于iOS 7以及iOS 6.0的不同设备,但 当我选择选项“查看方式:”时:iOS 7.0及更高版本按钮如下所示 然后,当我更改选项“查看方式:”:iOS 6.0及更早版本时,按钮如下所示 我如何管理构造,使其同时适用于iOS 6.0和iOS 7.0 提前谢谢 我的故事板上也有类似的问题,我搜索了很多,但毫无希望,最后通过以下方式消除了所有限制
提前谢谢 我的故事板上也有类似的问题,我搜索了很多,但毫无希望,最后通过以下方式消除了所有限制: 编辑器->解决自动布局问题->清除视图控制器中的所有约束 然后重新排序,这解决了我的大部分问题 《苹果过渡指南》第一篇: 如果业务原因要求您继续支持iOS 6或 在此之前,您需要选择最实用的方法来更新应用程序 对于iOS 7。您选择的技术可能有所不同,但总体而言 建议仍然是一样的:首先,专注于为iOS重新设计应用程序 7.然后,根据需要对iOS 6版本进行更改
这意味着在以前的iOS版本中,您可能会遇到一些问题,特别是在布局方面,您需要在iOS 7下重新布局控件,然后在iOS 6下测试它们。我的一些按钮在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];
/…背景按钮图像为33wx44h和66wx88h。这些对应于
//两个名称变体。png和@2x.png。前者用于
//标准分辨率屏幕,后者用于视网膜屏幕。
//UIEdgeInsetsMake专门设置为0、16、0、16(tp、lf、by、rt),因此
//我们没有垂直拉伸,因为苹果最喜欢的按钮尺寸,
//垂直方向是44。水平方向,按钮为33w,我们从
//左边和右边各16个,只留下一行垂直的像素
//水平拉伸;哪一个是最有效的;处理方面。
UIEdgeInsets insets=UIEdgeInsetsMake(00.0f,16.0f,00.0f,16.0f);//tp、lf、bt、rt
UIIMage*btnImage=[[UIIMage ImageName:myImage]
可调整大小的图像,带capinsets:insets];
[按钮设置背景图像:btnImage
forState:uicontrol状态正常];
我在想,在我的情况下,我可以把一个背景图像放进所有的图像中,即使它是透明的,以保持相同的外观
希望这会有所帮助。按钮上的全套约束是什么?我在问题中已经提到了这一点,我使用的约束是Pin[Bottom space to superview]约束,除此之外没有其他约束。是的,当我在xCode 5中创建一个示例项目,然后在主视图上放置一个UILabel对象时,我观察到了这一点。在iOS 7和更高版本&iOS 6&更早版本中,我在这两种情况下得到的位置都不一样。@brij:那么,您是如何支持iOS 6和iOS 7的呢?