从纵向切换到横向时高度没有更新?

时间:2015-06-15 06:59:58

标签: ios objective-c iphone landscape-portrait

我创建了UIScrollView,在其中添加了其他数据,将子视图添加到self.view。问题是,当我将手机从肖像切换到风景或反之时,它不会更新高度,因此我的scrollview无法正常工作。这是代码:

UIScrollView *menuScroll = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 44+28+8, 130, self.view.frame.size.height)];

2 个答案:

答案 0 :(得分:0)

覆盖ViewController上的 didRotateFromInterfaceOrientation 方法,并更改 scrollView 的框架。

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    [super didRotateFromInterfaceOrientation:fromInterfaceOrientation];

    self.menuScrollView.frame=CGRectMake(0,yPosition,width,self.view.frame.size.height);
}

答案 1 :(得分:0)

滚动视图不会改变其大小,因为您根本没有设置任何约束。

有两种方法可以做到这一点。第一个也是非常简单的,就是在Interface Builder中创建滚动视图及其子视图,并在那里设置所有必要的约束。第二种更难的方法是以编程方式设置它们,但是如果你对这样做感到不舒服,那么你应该坚持使用第一个选项,并在你的故事板(或nib文件)中完成所有工作。

就个人而言,我是第一种方式,我会创建IBOutlet属性,所以我稍后在代码中以编程方式设置子视图的任何其他属性。