如果您对Auto Layout还不是很了解,对它的大致原理还比较模糊,可以先看一下我的上一篇译文,http://blog.csdn.net/shinancao666/article/details/36932101
问题描述:
我需要在viewController的view(下面用self.view代替)中添加一个子view(下面就用loginView代替吧),self.view使用代码创建的:
CGRect rect = [[UIScreen mainScreen]bounds];
self.view = [[UIView alloc] initWithFrame:rect];
self.view.backgroundColor = [UIColor blueColor];
而loginView是用IB创建的,我需要在设备无论横屏还是竖屏时loginView都能位于界面的中间。当loginView中的文本框获得焦点后键盘出现时,让loginView整体向上滑动,避免键盘遮挡住文本框。
解决过程:
在IB中拖拽出一个登录的界面,拖拽过程不细说了,如下所示:
要注意一下view的Use Auto Layout要勾选上,其实XCode5在创建view时这一项就已经选上了。经过摸索,我发现只要确保在给每一个控件添加完约束后,能够让这个控件无论在什么时候在什么情况下都能确定它的大小和位置,就没有问题了,这样既不会产生警告,也不会多添加了约束。当约束之间产生了矛盾就会报错,比如一个约束是让控件左偏移10个点,一个约束是让控件做偏移20个点,这时就会报错。
在IB中有两个地方可以给控件加约束,一个是状态栏—>Editor—>Align/Pin,一个是在编辑器右下方的。当选中一个控件时,