UIScrollViewの位置補正

2010/12/25

UIScrollViewでページングしながらiPhoneを回転させてビューを再描画させた場合、 中途半端な位置で表示されてしまう可能性があります。

縦表示

iphone 2ページ目を表示した状態。

横表示

iphone 背景画像の切れ目でわかるとおり、回転前の縦表示 x , y座標で表示されています。

UIScrollViewのcontentOffsetで座標を指定してやれば解決します。

scrollView.contentOffset = CGPointMake(0, 0);

この場合、(0, 0)に指定しているので回転したら常に1ページ目に戻りますが、 回転前、回転後のx, y座標をを計算して割り当ててやれば回転後のページに飛ばす事ができるかと。