0

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

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 垂直触摸三角洲;- (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 回答