我有一個帶分頁的滾動視圖。在viewDidLoad中我檢查當前的方向是橫向的話,我設置其contentsize身高440UIScrollview方向更改時的內容大小
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)];
}
一切正常滾動視圖滾動smoothy並沒有角滾動。
但是當方向改變,
我必須設置滾動型的框架,並再次contentsize,我將其設置爲跟隨
-(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];
但改變它不幫助。
我只是想阻止我的滾動型的角滾動的問題,我不關心其他的問題,我不關心,如果如果我必須給內容大小高度1000.但我想了解它背後的原因。對角線滾動僅在視圖已經存在時將其方向更改爲橫向時發生。當視圖僅在橫向模式下首次出現時,它不會發生。 –
我想你不需要每次改變方向時改變內容。你只需要改變幀的大小。即使你使用自動調整,你也不需要這樣做。 –
[scroll setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth];嘗試像這樣 –