忍者ブログ

佐崎司と愉快な仲間達

ゲーム、アニメ、CG、iOS開発など思いついたことを記事にしています。 管理人が3人いますので、記事にまとまりはないと思います。 iPhoneアプリのレビュー依頼も受け付けています。

UIScrollViewのズーム中にaddSubViewするとイベントが発生しなくなる問題について

わか

UIScrollViewのズーム時にUIViewをaddSubViewすると、UIScrollView内のイベント処理関連が
おかしくなる現象が発生しました。

iOS7にて以下の順番でaddSubViewした状態でした。
⑴UIViewControllerのView
⑵UIScrollView
⑶UIView
⑷UIPageViewControllerのView
⑸UIScrollView
⑹UIImageView

上記の状態で⑶をズーム中に⑴に対してUIImageViewをaddSubView後、ページ移動
すると⑷以下のviewに全てのイベントが通らなくなりました(非ズーム中は問題なし)。
ただイベントが取らなくなるのではなく、通る範囲と通らない範囲に分かれました。
・イベントが通る範囲は、⑶をズームしていたサイズ範囲をx=0,y=0に移動した範囲
・その他の範囲はイベントが通らない

原因が分からず試行錯誤しましたが、何とか対処方法が見つかりました。

対処としては、ズーム中にaddSubViewするのではなく、ズーム前に予めaddSubView
しておくことでした。
試行錯誤するのは非常に時間がかかる上、原因が分からないため全くすっきりしません。
iOSで作業していると、最近このような問題が多く萎えますね・・・

追記
上記方法でもイベントが通らなくなる状況が発生しました。
上記方法と合わせて、ズーム率を1.0にしてからページ移動する。
ページ移動が完了したら元のズーム率に戻すでいけました。

拍手[0回]

PR