pagingEnabled=YES, bounces=YESのスクロールビューを使った時、
iOSの5と6でスクロールの動きが違ったので以下に内容を記載します。
例えば以下のようなコードを書いた場合。
scrollView.contentSize
= CGSizeMake(pageViewSize.width*maxCol, pageViewSize.height*maxRow);
この場合pageViewSizeのサイズ*グリッド数分の領域がcontentSizeとしてセットされます。
この時、pageViewSize.widthが1024、maxColが2だとすると
scrollViewのcontentSize.widthは2048になります。
この状態で、scrollViewのcontentOffset0,0から右フリックすると、
scrollViewDidEndDecelerating内でのcontentOffsetが
iOS6の場合は、1024で止まるのですが、iOS5の場合は、1024を超えてoffsetが増加していきます、
(つまり、contentSizeを超えた領域までスクロールが到達してしまう。)
対策としては、scrollViewDidEndDecelerating内で位置を補正するコードを書くか
bounces=NOにして、バウンド処理を切れば、iOS5でも正常な位置でストップするようになります。
0 件のコメント:
コメントを投稿