首页 文章

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

提问于
浏览
0

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

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

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

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

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

1 回答

  • 0

    #import <Foundation/Foundation.h>
    
    
    @interface JBSlider : UISlider {
        double verticalTouchDelta;
    }
    @property(nonatomic, assign)    double verticalTouchDelta;
    
    @end
    

    主文件

    import“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即可 . 工作真棒 .

相关问题