如何在IOS中设置视图的最大宽度?

时间:2016-07-11 13:35:02

标签: ios autolayout

我的应用程序有一个基本的登录屏幕,一个外框,里面有一些文本字段和按钮。我将框设置为填满屏幕。但是,在某些设备上,这个盒子会很大。我想为它设置最大宽度和高度。

如何为视图设置最大宽度和高度?

7 个答案:

答案 0 :(得分:53)

您可以使用自动布局约束,以使框适应屏幕大小,但不超过给定的宽度和高度。为此,请在宽度和高度上设置“小于或等于”约束。

  1. 在框中添加顶部,底部,前导,尾随,宽度和高度限制。
  2. 将top,bottom,leading和trailing约束的优先级设置为 High (750)。
  3. 将宽度和高度约束的关系设置为小于或等于(≤)。默认值为等于
  4. 将宽度和高度限制的优先级设置为必需(1000)。
  5. 将宽度和高度限制的常量设置为您希望该框所在的最大大小。
  6. Set width constraint relation to Less Than or Equal

    Set width constraint constant to 1000

    Set leading and trailing constraint priority to 750

答案 1 :(得分:0)

如果您想提供View框架来修复所有设备,请使用此widthheight

self.view.frame.size.width,self.view.frame.size.height

或者您可以通过将视图拖动到其边缘来提供自动布局Top Bottom TrailingLeading constraints

答案 2 :(得分:0)

对于该容器视图,只使用四个约束(即顶部空间,底部空间,前导空格,尾随空间)。

答案 3 :(得分:0)

您可以通过编程方式进行

some_view.widthAnchor.constraint(lessThanOrEqualTo: view.widthAnchor, multiplier: 0.45)        
some_view.heightAnchor.constraint(lessThanOrEqualTo: view.widthAnchor multiplier: 0.45)

0.45基本上是说some_view的宽度和高度最多是超级视图的宽度的45%。

答案 4 :(得分:-1)

如果您使用的是Interface Builder,您可以:

  • ctrl + clic你的视图并将蓝色箭头拖到超级视图。

  • 按住shift并选择"相等的宽度"和"相等的高度"

  • 然后转到视图的约束(小标尺图标)并设置一个乘数,如0.5,使您的视图宽度/高度等于其超视图各自尺寸的一半。

答案 5 :(得分:-1)

UIView *viw=[UIView alloc]init];
viw.frame=CGRectMake(x,y,CGFLOAT_MAX,h);

答案 6 :(得分:-2)

请尝试以下可能对您有帮助的代码

yourviewObject.frame=CGRectMake(yourviewObject.frame.origin.x,yourviewObject.frame.origin.y,self.view.frame.size.width,yourviewObject.frame.size.height)