我有一个带有分页的滚动视图。在 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];
但改变它没有帮助。