我想在旋轉更改期間手動更新UIScrollView
的contentOffset
。滾動視圖填充屏幕,並具有靈活的寬度和靈活的高度。旋轉期間的UIScrollView的內容偏移
我目前正試圖在willRotateToInterfaceOrientation
更新contentOffset,就像這樣:
- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[Utils logPoint:myScrollView.contentOffset tag:@"initial"];
myScrollView.contentOffset = CGPointMake(modifiedX, modifiedY);
[Utils logPoint:myScrollView.contentOffset tag:@"modified"];
}
-(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
[Utils logPoint:myScrollView.contentOffset tag:@"final"];
}
然而,最終的價值是不是修改後的值,它有點似乎是由它的影響,但它不是對我來說如何。
這些都是我得到的結果:
initial: (146.000000;-266.000000)
modified: (81.000000;-108.000000)
final: (59.000000;-0.000000)
initial: (146.000000;-266.000000)
modified: (500.000000;500.000000)
final: (59.000000;500.000000)
initial: (146.000000;-266.000000)
modified: (-500.000000;-500.000000)
final: (-0.000000;-0.000000)
如何旋轉變化時更新滾動視圖的contentOffset?
你嘗試改變contentOffset在'willAnimateRotationToInterfaceOrientation'呢?當時應該有一個動畫塊,或許結果是不同的。 – Pascal 2010-09-08 13:37:01
@帕斯卡是的,它工作正常。不過,我想知道爲什麼它不按預期行事,如果我改變它在willRotateToInterfaceOrientation。 – hpique 2010-09-09 06:31:55
我的猜測是父母的框架只會在**'willRotateToInterfaceOrientation'之後改變**,所以你設置了一個不同的contentOffset,但是那一個會立即改變,因爲超級視圖的框架也只是改變了。對於操作系統來說,就像你早些時候改變畫面的方式,而不是等待旋轉。 – Pascal 2010-09-12 10:34:15