我想创建具有Header,Container和Footer的iOS应用程序,就像iOS默认的Camera app一样。标题有标题和页脚在UIWebView中有4个按钮和容器加载网址。现在,当我改变屏幕的方向时,我希望标题到达顶部,页眉和页脚下面的容器将使用水平按钮来到屏幕的右侧。如何在iOS 7中实现此效果。
以下是我的应用在Portrait和Landscape中的样子的屏幕截图。
我尝试过UIStackView,但它只支持iOS9 +,我也尝试使用OAStackView,但它无法正常工作。请帮帮我。
答案 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
}
}