Пытаюсь выяснить, где находятся мои касания при перемещении ползунка управления

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

  •  12-09-2019
  •  | 
  •  

Вопрос

Я хотел бы создать ползунок с переменной скоростью управления на 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.Работает потрясающе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top