如何在iOS的自动布局中设置视图的dynamic宽度和高度?

我有一个UIView在我的超级view.I已经设置了一些约束。现在我想在不同的devices.If视图的大小应该是不同的。如果我设置固定宽度和高度,然后我得到了错误的结果。我曾尝试用户长宽比,但是在多个设备上看起来太大或太小。

我希望高度和宽度应该以相同的比例增加,它必须看起来相同的所有devices.I要灵活的高度和宽度的view.Please告诉如何做到这一点?

这是图像 在这里输入图像说明

提前致谢

使用大小类。 有助于针对不同设备进行不同的设置。 http://www.raywenderlich.com/83276/beginning-adaptive-layout-tutorial https://youtu.be/IwSTXY0awng?t=2m12s

在这里输入图像说明 最简单的方法是创build一个widthheight限制的出口。

然后根据手机在viewDidLoaddynamic改变它。

要检查你是哪个手机,可以检查iPhone 4S的480 ,iPhone 5,5S的568

 @interface ScoreListViewController (){ @property (weak, nonatomic) IBOutlet NSLayoutConstraint *widthConstraint; @property (weak, nonatomic) IBOutlet NSLayoutConstraint *heightConstraint; @end - (void)viewDidLoad { [super viewDidLoad]; // Set the value according to your requirement if(4S){ self.heightConstraint.constant=100; } } 

尝试按照下面的屏幕截图:

在这里输入图像说明

在这里输入图像说明

在这里输入图像说明

在这里输入图像说明

在这里输入图像说明

你会得到如下结果

在这里输入图像说明

我写了一篇关于自动布局dynamic变化布局的博客文章 。
对于每个屏幕大小,您可以以编程方式添加约束。
algorithm

  1. 获取当前的设备大小
  2. 根据设备大小获取所需的限制
  3. 然后以编程方式添加约束

根据方向改变

  • 收听UIDeviceOrientationDidChangeNotification通知
  • 根据通知添加新的约束
  • 然后调用setNeedsUpdateConstraints
    有关更多信息和示例代码,请参阅博客文章和此 github回购