我想创建一个UIView,会为纵向和横向模式下工作,但不知道如何实现这一目标。 仅供参考 - 我通过代码,所以没有XIB或故事板铺设了所有的组件...这是一个要求。
我有一个名为方法createView
,规定了所有视图组件(按钮,标签,等...),我称之为创建视图的任何时间。
我不知道是说我的控制器通过添加视图addSubview:myNewCustomView
而在水平模式,那么如何从纵向切换到横向时更改组件的布局我的自定义的UIView?
我会创造在我的自定义的UIView一个方法来布局纵向和另一个用于景观? 如果我有两种方法,我会得到父母的显示模式,横向或纵向,然后调用我的自定义的UIView适当CreateView的方法?
你可以在你CustomView类的过程layoutSubviews方法。 而在你的ViewController电话setNeedsLayout您CustomView对象。 保持一个变量在CustomView方向
在CustomView: -
- (void) layoutSubviews(){
// set position and height width of the subviews according to this views params
}
在YourViewController: -
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration {
[yourCustomViewObj setOrientation:orientation];
[yourCustomViewObj setNeedsLayout];
}