1

私は 8 種類のバーを持っていますUIButton。それぞれUIButtonに「Shows Touch On Highlight」属性がチェックされています。8 つのボタンすべてが同時に表示されるわけではありません。

それらを 4 つの 2 つのグループに分割しUIButton、 を使用しUISwipeGestureRecognizerて 2 つのビューを切り替えます。

これはうまくいきます。

だから、ここに私の問題があります:

ボタンの 1 つをスワイプしてタッチすると、(スワイプしたため) ボタンの機能がトリガーされなくても、タッチ ハイライト アニメーションが表示されます。

この場合(スワイプの場合)、タッチハイライトを表示したくありません。どうすれば無効にできますか?

4

3 に答える 3

1

UIButtonのプロパティを使用しますshowsTouchWhenHighlighted

例 :self.btn.showsTouchWhenHighlighted = NO

于 2013-02-25T06:56:37.920 に答える
1

この問題を解決するために、UIButton を UILabel に置き換え、タップ ハンドラーを追加しました。UILabel にはハイライトのタッチがないため、スワイプを妨げません。

コードサンプルは次のとおりです。

UITapGestureRecognizer *tapLabel = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];
[tapLabel setNumberOfTouchesRequired:1];
[tapLabel setNumberOfTapsRequired:1];
[titleLabel addGestureRecognizer:tapLabel];
titleLabel.userInteractionEnabled = TRUE;

これは解決策というよりも回避策ですが、役立つ可能性があります。

于 2014-10-14T15:52:42.933 に答える
0

UIImageViewのreplacetoボタンを使用することをお勧めします

次に例を示します。

UISwipeGestureRecognizer *swiper = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwip:)] autorelease];
[swiperTopL setDirection:UISwipeGestureRecognizerDirectionLeft];
[imageView addGestureRecognizer:swiper];


UITapGestureRecognizer *tapButton = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(buttonTap:)] autorelease];
[imageView addGestureRecognizer:tapButton];

それがあなたを助けることができることを願っています、ありがとう!

ウェイン

于 2013-02-25T07:03:55.873 に答える