0

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

EGユーザーはコントロールを左右にスライドできますが、ビューのどこに指が垂直にあるかを確認したいと思います。

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

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

つまり、タッチイベントがスライダーに送信されていると想定しているため、タッチイベントを検出できないということですか?誰かがこれをやろうとしましたか?または、UISliderをサブクラスにする必要があります。うーん。

4

1 に答える 1

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 *)event {[super sendAction:action to:target forEvent:event]; // NSLog(@ "HI HI");

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

}

@終わり

Interface Builderで、スライダーをUISliderからJBSliderに変更するだけです。素晴らしい作品。

于 2009-08-07T05:15:01.277 に答える