如何更改iOS 7中屏幕方向更改时View Controller的位置?

时间:2015-11-25 05:45:09

标签: ios objective-c ios7

我想创建具有Header,Container和Footer的iOS应用程序,就像iOS默认的Camera app一样。标题有标题和页脚在UIWebView中有4个按钮和容器加载网址。现在,当我改变屏幕的方向时,我希望标题到达顶部,页眉和页脚下面的容器将使用水平按钮来到屏幕的右侧。如何在iOS 7中实现此效果。

以下是我的应用在Portrait和Landscape中的样子的屏幕截图。 enter image description here enter image description here

我尝试过UIStackView,但它只支持iOS9 +,我也尝试使用OAStackView,但它无法正常工作。请帮帮我。

2 个答案:

答案 0 :(得分:2)

我的建议是你应该有两个页脚视图,一个在底部,另一个在视图的右侧,

根据方向

设置页脚视图的隐藏属性

在方法

中更改容器视图的大小
-(void)viewDidLayoutSubviews{

*if(PORTRAIT){

    self.containerview.frame=CGRectMake(self.view.frame.orign.x, self.headerview.frame.size.height, self.view.frame.size.width, self.view.frame.size.height-footer.view.frame.size.height);

    rightSideFooterView.hidden = YES;
    bottomFooterView.hidden = NO;

else {

self.containerview.frame=CGRectMake(self.view.frame.origin.x, self.headerview.frame.size.height, self.view.frame.size.width-footer.view.frame.size.width, self.view.frame.size.height);
rightSideFooterView.hidden = NO;
bottomFooterView.hidden = YES;
}*

我认为这可能会解决您的问题,我不确定这是最好的方法,但这是处理此问题的方法之一

答案 1 :(得分:0)

对于工具栏,我将设计两个自定义工具栏。例如,横向为toolBarL,纵向为toolBarP

在横向投影时,让toolBarL显示并隐藏toolBarP。在纵向模式下,显示toolBarP和隐藏toolBarL

覆盖willRotateToInterfaceOrientation:duration:的方法UIViewController以进行旋转方向。

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
        // UI for portrait 
    } else {
        // UI for landscape
    }
}