슬라이더 컨트롤을 움직일 때 내 손길이 어디에 있는지 알아 내려고
문제
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로 슬라이더를 변경하기 만하면됩니다. 굉장합니다.
제휴하지 않습니다 StackOverflow