슬라이더 컨트롤을 움직일 때 내 손길이 어디에 있는지 알아 내려고

StackOverflow https://stackoverflow.com/questions/1242946

  •  12-09-2019
  •  | 
  •  

문제

iPhone에서 가변 속도 슬라이더 컨트롤을 만들고 싶습니다. 기본적으로 Uislider 컨트롤을 사용하고 있지만 현재보기의 손가락이 위치를 감지 하여이 컨트롤에 2 차원을 추가하고 싶습니다.

예를 들어 사용자는 컨트롤을 왼쪽과 오른쪽으로 밀어 넣을 수 있지만 시야에서 손가락이 수직으로 어디에 있는지보고 싶습니다.

내 문제는 슬라이더 컨트롤을 조작 할 때입니다. 다음 함수는 호출되지 않습니다.

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

그래서 이것은 슬라이더로 보내 졌다고 가정하기 때문에 터치 이벤트를 감지 할 수 없다는 것을 의미합니까? 누구든지 이것을하려고 했습니까? 또는 클래스 UISLIDER 하위 제가해야합니까? 흠.

도움이 되었습니까?

해결책

헤더

#import <Foundation/Foundation.h>


@interface JBSlider : UISlider {
    double verticalTouchDelta;
}
@property(nonatomic, assign)    double verticalTouchDelta;

@end

메인 파일

"jbslider.h"가져 오기

@implementation jbslider

@synthesize verticalTouchdelta; - (void) sendaction : (sel) 행동 : (id) target forevent : (uievent *) 이벤트 {[슈퍼 보내기 : 조치 : target forevent : event]; // nslog (@"hi hi");

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

}

@끝

인터페이스 빌더의 UISLIDER에서 JBSLIDER로 슬라이더를 변경하기 만하면됩니다. 굉장합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top