Пытаюсь выяснить, где находятся мои касания при перемещении ползунка управления
Вопрос
Я хотел бы создать ползунок с переменной скоростью управления на iPhone.По сути, я использую элемент управления UISlider, но я хотел бы добавить второе измерение к этому элементу управления, определив, где находится палец в текущем представлении.
Например,Дж.Пользователь может перемещать элемент управления влево и вправо, но я хочу видеть, где находится его палец по вертикали в представлении.
Моя проблема в том, что когда вы манипулируете элементом управления слайдером.Следующая функция не вызывается.
- (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"
@реализация JBSlider
@синтезировать verticalTouchDelta;- (недействительный)sendAction: (SEL) действие к: (id) целевому событию: (UIEvent *) событие{ [супер sendAction: действие к: целевому событию: событие];//NSLog(@"ПРИВЕТ, ПРИВЕТ");
UITouch * touch = [[event touchesForView:self] anyObject];
//NSLog(@"%f", [touch locationInView:self].y);
verticalTouchDelta = [touch locationInView:self].y;
}
@конец
Просто измените свой слайдер с UISlider на JBSlider в Interface Builder.Работает потрясающе.