superviewの範囲外に配置されたviewにタッチイベントを送信する おまけ

かんばんわ。

前回の記事の最後で問題にぶつかりました。

なんか素早くドラッグしたらパネルビューが付いて来れずに置いてけぼりになっちゃってる〜〜〜!!!

えー・・・なんでよ・・・。

犯人はコイツだ!

    // 範囲外だったら無視する 
    if ((CGRectGetWidth(panel.frame)  >= touchPoint.x) && (touchPoint.x > 0) &&
        (CGRectGetHeight(panel.frame) >= touchPoint.y) && (touchPoint.y > 0) ) {

タッチ座標がパネルビューからはみ出てmoveを拾っていないだけでした。
コメントにも範囲外タッチイベントだったら無視するよ〜って書いてたのに…。

さらに上記とは別に、パネルビューの範囲外からドラッグしながらパネルビューに触れるとパネルが動いてしまう、という問題を発見してしまいました。
だめだめやん。。。

でも「superviewの範囲外に配置されたviewに対してタッチイベントを送信する」という本題は前回の記事で実装できているので、今回はそのオマケみたいな感じとなります。

続きを読む