スライダコントロールを移動するときに、私のタッチは、どこを把握しよう
質問
私は、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からあなたのスライダーを変更します。 素晴らしい作品ます。
所属していません StackOverflow