0

UIView(サブクラス)のレイヤーで画面に描画することについてのこの優れた小さなチュートリアルに従っています。 http://spritebandits.wordpress.com/ それはうまくいきます。

一つだけあります。このビューをUITableViewCellのサブビューとして配置しました。これは、当然、UITableViewの一部として表示されます。UIScrollView内に配置した場合も、同じ問題が発生すると思います。(UITableViewはとにかくUIScrollViewから継承します)

関連する動きが水平である限り、タッチは私のペイントビューによってトリガーされます。指を少しでも垂直に動かすとすぐに、UITableViewが引き継いでテーブルをスクロールします。

タッチが実際に私の視野内にある間に、テーブルを停止してタッチの制御を奪う適切な方法はありますか?

重要な場合:ストーリーボードを使用しています。セルは、UITableViewCellの独自のサブクラスを持つプロトタイプセルです。

4

2 に答える 2

1

あなたが言っているのと同じクラス「Canvas」を使用して、これもUITableViewCell内に実装しました。しかし、描画にセル全体を使用したのではなく、UITableView 内の UIView のみをサブビューとして使用しました。

そのUIView(描画を許可するセルのサブビュー)がtouchesBeganまたはtouchesEndedを起動したときに、UITableViewスクロールをアクティブ化および非アクティブ化することにより、ユーザーエクスペリエンス全体に到達しました。したがって、UIView 内でタッチ/移動すると、描画されます。それが外にあるとき、彼らはスクロールしています。したがって、描画するため、UIView をスクロールできません。

あなたの場合の問題は、セル全体が描画用のビューであるため、ユーザーは描画用のセルであるため、この具体的なセルをスクロールできないことです。

これが役立つことを願っています。

于 2013-03-19T22:14:09.953 に答える
0

私はそれに対する答えを持っていません。しかし、本質的に回避策があります。

ユーザーを描画モードにして、UItableviewcell のスクロールを無効にしてから、

ユーザーが描画を完了したら、スクロールを再び有効にすることができます。

画面の任意の場所にボタンを含めると、モードを切り替えるのに役立ちます。

于 2013-03-19T21:46:40.553 に答える