Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何管理适用于iOS 7&;的自动布局约束;iOS 6.0两者都有_Ios_Ios6_Ios7 - Fatal编程技术网

如何管理适用于iOS 7&;的自动布局约束;iOS 6.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 提前谢谢 我的故事板上也有类似的问题,我搜索了很多,但毫无希望,最后通过以下方式消除了所有限制

我已经在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的呢?