如何创build纵向和横向布局的UIView

我正在尝试创build一个UIView,它既适用于纵向模式,也适用于横向模式,但不知道如何实现这一点。 仅供参考 – 我通过代码铺设所有组件,所以没有XIB或故事板…这是一个要求。

我有一个名为createView的方法,它列出了任何时候创build视图的所有视图组件(button,标签等等)。

我不知道的是说我的控制器通过addSubview:myNewCustomView在水平模式下添加视图,那么当从纵向切换到横向时,如何更改自定义UIView中组件的布局?

我会创build自定义UIView中的方法来布局肖像和另一个景观? 如果我有两个方法,我将不得不父母显示模式,风景或肖像,然后在我的自定义UIView调用适当的createView方法?

您可以在您的CustomView类中重写layoutSubviews方法。 并在您的ViewController调用您的CustomView对象的setNeedsLayout。 在您的CustomView中保留一个方向的variables

在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]; }