Попытка выяснить, где мои прикосновения, при перемещении ползунка - PullRequest
0 голосов
/ 07 августа 2009

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

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

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

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

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

1 Ответ

0 голосов
/ 07 августа 2009

заголовок

#import <Foundation/Foundation.h>


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

@end

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

import "JBSlider.h"

@ реализация JBSlider

@ синтезировать verticalTouchDelta; - (void) sendAction: (SEL) действие для: (id) цели 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;    

}

@ конец

Просто измените ваш ползунок с UISlider на JBSlider в Интерфейсном Разработчике. Работает потрясающе.

...