移动滑块控件时,试图弄清楚触摸的位置

时间:2009-08-07 04:55:18

标签: iphone uislider

我想在iPhone上创建一个可变速滑块控件。 基本上我使用的是UISlider控件,但我想通过检测手指在当前视图中的位置为该控件添加第二个维度。

E.G。用户可以左右滑动控件,但我想看看他们的手指在视图中的垂直位置。

我的问题是当你操纵滑块控件时。 不调用以下函数。

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

所以这意味着我无法检测到任何触摸事件,因为我认为它们被发送到滑块?有人试图这样做吗?或者我应该亚类UISlider。嗯。

1 个答案:

答案 0 :(得分: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;    

}

@end

只需在Interface Builder中将滑块从UISlider更改为JBSlider。 工作真棒。