4

カスタムセクションヘッダービューを備えたプレーンスタイルのUITableViewがあります(6.0より前、UITableViewHeaderFooterViewではありません)。タップできるものもあれば、タップできないものもあります。それらが他のセルの上にあるテーブル ビューの上部にある場合、タップはヘッダー セクションを通過して下のテーブル ビュー セルに移動します。アプリの他の場所でこのビューを再利用する必要があるため、セクション ヘッダー ビューは UITableViewCell のサブクラスです。タッチが通過しないようにする方法はありますか?

セクション ヘッダー ビューのサブクラスを UITableViewCell ではなく UIView に変更すると、問題は解決します。ただし、この解決策は他の理由から実行できません。無効にできる UITableViewCell の特別な動作はありますか?

4

3 に答える 3

2

ここ- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)eventでインスタンスメソッドを見てください。

UIView サブクラスでこのメソッドをオーバーライドして、タッチに応答するビューを返すことができます。

おそらくこの種のアプローチを使用します:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
    id hitView = [super hitTest:point withEvent:event];

    if (hitView == self) {
        return nil;
    } else {
        return hitView;
    }
}

お役に立てれば。

于 2013-04-05T17:50:41.547 に答える
0

私も同じ状況でした。カスタムヘッダーセルの他のものの下にUIButtonを配置し、セル全体のサイズにしてブレンドしました。

これで、タップをキャッチして何もせず、タップがその下のセルに到達するのを防ぎます。お役に立てれば。

于 2015-07-26T01:36:23.833 に答える