您的位置:首页 > 产品设计 > UI/UE

解决ios6中UIScrollView不能滚动的问题

2012-11-07 18:54 211 查看
在iOS6中,如果像旧版本的资料提到的那样,用IB将一个ScrollView拖到.h文件中创建一个outlet,并在viewDidLoad函数中设置ScrollView的contentSize属性的话,会发现运行的程序中ScrollView可见,但无法拖动。这是因为iOS6中的AutoLayout机制,在viewDidLoad函数被执行后,AutoLayout会重新把contentSize修改为符合屏幕大小的数值(也就是说,现在的contentSize又适合了屏幕大小,并没有大于UIScrollView本身的大小,当然也就不能滚动了)。

解决办法是重写viewDidAppear:(BOOL)animated方法,在父类方法调用之后再修改contentSize属性:

- (void)viewDidAppear:(BOOL)animated
{
[superviewDidAppear:animated];
self.theScroller.contentSize=CGSizeMake(400.0,600.0);
}

这个函数会在autoLayout之后被执行,从而避免了contentSize属性被再次修改。

另外,有人说也可以在File Inspector中去掉autoLayout项,不过据说这样还会有别的问题,没有测试过不得而知。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: