Tho*_*son 6 cocoa-touch rotation autorotate
我已将我的观点设置为viewDidLoad.所有不同的框架和这样的子视图都是相对于self.view.因此,self.view子视图总是缩小或扩展以适应的大小(无论如何)都无关紧要.
因此,当我旋转设备时,我希望视图旋转(很容易shouldAutoRotateToInterfaceOrientation:...),但子视图保持相同的形状.
调用[self viewDidLoad];使所有元素都适合,但在前一个布局之上放置一个新层(这很明显......但我只是想解释我的意思).
有没有办法刷新子视图的帧或什么?我不知道其他人说实话.我是否必须将所有视图作为属性放入.h文件并手动执行所有操作didRotate...?
你有三个选择:
如果自动调整蒙版足以定位视图,请在创建时为每个子视图指定正确的自动调整蒙版.
如果自动调整遮罩不够,请覆盖willAnimateRotationToInterfaceOrientation:duration:并重新定位该方法中的子视图.我将创建一个自定义方法,将方向作为参数,并负责布局所有子视图.然后,您可以调用此方法willAnimateRotationToInterfaceOrientation:duration:从viewDidLoad.
您还可以创建自定义UIView子类,并使视图控制器的视图成为此类的实例.然后覆盖layoutSubviews以根据视图的大小定位所有子视图.此方法意味着您的自定义视图管理其子视图而不是视图控制器.