我想在iPhone上创建一个可变速滑块控件。 基本上我使用的是UISlider控件,但我想通过检测手指在当前视图中的位置为该控件添加第二个维度。
E.G。用户可以左右滑动控件,但我想看看他们的手指在视图中的垂直位置。
我的问题是当你操纵滑块控件时。 不调用以下函数。
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
所以这意味着我无法检测到任何触摸事件,因为我认为它们被发送到滑块?有人试图这样做吗?或者我应该亚类UISlider。嗯。
答案 0 :(得分:0)
头
#import <Foundation/Foundation.h>
@interface JBSlider : UISlider {
double verticalTouchDelta;
}
@property(nonatomic, assign) double verticalTouchDelta;
@end
主档
@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。 工作真棒。