2009-08-07 2 views
0

Я хотел бы создать элемент управления переменной скорости на iPhone. В основном я использую элемент управления UISlider, но я хотел бы добавить второе измерение к этому элементу управления, указав, где находится палец в текущем представлении.Попытка выяснить, где мои прикосновения, при перемещении ползунка

E.G. Пользователь может перемещать элемент управления влево и вправо, но я хочу видеть, где их палец вертикально в представлении.

Моя проблема заключается в том, что при манипулировании блоком управления. Следующая функция не вызывается.

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

так что это означает, что я не могу обнаружить какие-либо события касания, потому что я предполагаю, что они отправляются на ползунок? Кто-нибудь пытался это сделать? Или я должен подкласс класса UISlider. Хммм.

+0

Хммм, глядя на UISlider.h, на самом деле это не похоже, что какие-либо события отправляются в этот класс, который я могу поймать? –

+0

вот полный учебник о том, что вам нужно http://oleb.net/blog/2011/01/obslider-a-uislider-subclass-with-variable-scrubbing-speed/ – blackmoon

ответ

0

Заголовок

#import <Foundation/Foundation.h> 


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

@end 

основной файл

импорт "JBSlider.h"

@implementation JBSlider

@synthesize verticalTouchDelta; - (void) sendAction: (SEL) action to: (id) target forEvent: (UIEvent *) событие { [super sendAction: действие для: target forEvent: event]; // NSLog (@ "HI HI");

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

}

@end

Просто измените ползунок от UISlider к JBSlider в Interface Builder. Работает потрясающе.

Смежные вопросы