2009-08-07 5 views
0

iPhoneで可変速度スライダーコントロールを作成したいと思います。 基本的に私はUISliderコントロールを使用していますが、現在のビューのどこに指があるかを検出することで、このコントロールに2番目のディメンションを追加したいと考えています。スライダーコントロールを動かすときに私のタッチがどこにあるのかわかります

E.G.ユーザーはコントロールを左右にスライドさせることができますが、私は自分の指がビューのどこに垂直であるかを見たいと思っています。

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

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

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

+0

私はUISlider.hを見ていますが、このクラスにはどのイベントも送信できないようです。 –

+0

ここには必要なものの完全なチュートリアルがありますhttp://oleb.net/blog/2011/01/obslider-a-uislider-subclass-with-variable-scrubbing-speed/ – blackmoon

答えて

0

ヘッダ

#import <Foundation/Foundation.h> 


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

@end 

メインファイル

移入 "JBSlider.h"

@implementation JBSlider

@synthesize verticalTouchDelta。 - (void)sendAction:(SEL)action to:(id)target forEvent :(UIEvent *)イベント{ [super sendAction:target toEvent:event]; // 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からあなたのスライダーを変更します。 素晴らしい作品です。

関連する問題