我有一个带分页的滚动视图。在viewDidLoad中,如果当前方向是横向,则设置其内容大小的高度为440。
if (UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation]))
{
[scroll setContentSize:CGSizeMake(self.scroll.frame.size.width*numberOfPages,340)];
}
else if (UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation]))
{
[scroll setFrame:CGRectMake(0,0,480,480)];
[scroll setContentSize:CGSizeMake(self.scroll.frame.size.width*numberOfPages, 440)];
}
一切正常,滚动视图滚动平稳,且没有斜向滚动。
但是当屏幕方向改变时,
我必须重新设置滚动视图的框架和内容大小,我按以下方式进行设置
-(void)orientationChanged:(id)object
{
if(UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation]))
{
self.scroll.frame = [[UIScreen mainScreen]bounds];
[scroll setContentSize:CGSizeMake(self.scroll.frame.size.width*numberOfPages, 340)];
}
else
{
self.scroll.frame = CGRectMake(0,0,480,480);
[scroll setContentSize:CGSizeMake(self.scroll.frame.size.width*numberOfPages, 600)];
}
}
我不明白为什么在横屏模式下我需要将内容大小的高度设置为600,而且还不够用。这还会增加一个问题,即滚动视图开始对角线滚动,这看起来很奇怪。有人能帮我理解我错在哪里了吗?
我已经将滚动视图的自动调整掩码设置为
[scroll setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleHeight];
但是更改它并没有帮助。