誰かが私の頭の中で悩んでいる問題を手伝ってくれることを願っています!UIScrollView内のUITableViewCellでスワイプジェスチャーを検出する
は、私は私のカスタムUITableViewCellの上でスワイプジェスチャーを検出できるようにしたい、次のビュー階層
を考えます。
IはUIScrollViewのをサブクラス化し、hitTest有した:withEvent:方法私は、次のスクロールビューのプロパティを設定した場合、テーブルビューのセル(またはその内容)か、タッチしていますかどうかを確認:
- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
UIView* result = [super hitTest:point withEvent:event];
if ([result.superview isKindOfClass:[UITableViewCell class]] || [result.superview tag] == SUBVIEW_TAG)
{
self.canCancelContentTouches = NO;
self.delaysContentTouches = YES;
} else {
self.canCancelContentTouches = YES;
self.delaysContentTouches = NO;
}
return result;
}
を
私も実装している:
- (BOOL)touchesShouldCancelInContentView:(UIView *)view
{
if (view.tag == SUBVIEW_TAG || [[view superview] isKindOfClass:[UITableViewCell class]])
return NO;
return YES;
}
をそして触れているビューは、テーブルビューのセルである場合にはNOを返しています。
これらのメソッドはすべて呼び出され、期待どおりのアクションを実行していますが、UIScrollViewをスワイプジェスチャーの「ホギング」から停止することはできません。
興味深いのは、上記の両方のメソッド(SUBVIEW_TAGを持つもの)でtableviewとcellを含むUIViewをインクルードすると、完全に動作するので、それがUITableView UIScrollViewから継承します。
私の主な目標は、セルをスワイプしてセルのオプションを増やすことです。そのビュー上の他の場所にある水平スワイプは、スクロールビューでキャプチャされ、通常の動作に従ってコンテンツを水平方向にシフトします。
アイデアは非常に高く評価されます。
ありがとうございます! Rogメール
のUITableViewCellにジェスチャー認識を追加するには十分ではないでしょうか? – teriiehina
これを解決しましたか? もしそうなら、ソリューションを共有してもよろしいですか?あなたは問題を非常にうまく詳細に説明しました。同様の方法で答えは素晴らしいでしょう! – iOSProgrammingIsFun
うん、その解決策は素晴らしいだろう – Pasta