如何在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一个width
和height
限制的出口。
然后根据手机在viewDidLoad
dynamic改变它。
要检查你是哪个手机,可以检查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
- 获取当前的设备大小
- 根据设备大小获取所需的限制
- 然后以编程方式添加约束
根据方向改变
- 收听UIDeviceOrientationDidChangeNotification通知
- 根据通知添加新的约束
- 然后调用setNeedsUpdateConstraints
有关更多信息和示例代码,请参阅博客文章和此 github回购
- 如何在animateTransition期间获取ToViewController中子视图的框架:?
- UIScrollView和约束问题
- 自动布局自动旋转时,如何重新排列视图?
- AutoLayout uitableviewcell在横向和iPad上计算基于肖像iPhone的高度
- 无法将UILabel的Y位置与Autolayout“on”一起移动
- 是否有可能与UITableView的tableHeaderView使用AutoLayout?
- 在iPhone上使用Xcode Auto Layout来设置不同的图像尺寸
- UITableView缺less新的可见行NSInternalInconsistencyException的单元格
- 表视图单元从View Controller返回到Table View Controller时“跳转”