スライダコントロールを移動するときに、私のタッチは、どこを把握しよう

StackOverflow https://stackoverflow.com/questions/1242946

  •  12-09-2019
  •  | 
  •  

質問

私は、iPhone上の可変速スライダコントロールを作成したいと思います。 基本的に私はUISliderコントロールを使用していますが、私は指が現在のビューにある場合を検出することで、このコントロールに二次元を追加したいと思います。

例えば。ユーザーがコントロールをスライドできる左右が、私は自分の指がビュー内に垂直にある場所を確認したい。

私の問題は、スライダーコントロールを操作しているときということです。 以下の関数が呼び出されません。

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

これは、私は、彼らがスライダーに送信されていると仮定しているので、私は、任意のタッチイベントを検出することができないことを意味しますか?誰もがこれを実行しようとしましたか?それともサブクラスUISlider必要があります。うーんます。

役に立ちましたか?

解決

ヘッダ

#import <Foundation/Foundation.h>


@interface JBSlider : UISlider {
    double verticalTouchDelta;
}
@property(nonatomic, assign)    double verticalTouchDelta;

@end

メインファイル

輸入 "JBSlider.h"

@implementation JBSlider

@synthesize verticalTouchDelta。 - (ボイド)sendAction:(SEL)への作用:(ID)ターゲットforEvent:(たUIEvent *)イベントを{     [スーパーsendAction:アクションへ:ターゲットforEvent:イベント];     //のNSLog(@ "HI HI");

UITouch * touch = [[event touchesForView:self] anyObject];
//NSLog(@"%f", [touch locationInView:self].y);
verticalTouchDelta  = [touch locationInView:self].y;    

}

@end

単にInterface BuilderでJBSliderにUISliderからあなたのスライダーを変更します。 素晴らしい作品ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top