Бих искал да направя моя UISlider да може да се кликва - да променя стойността при щракване на "празно място", напр. Настроен е на нула, щраквам в средата на плъзгача и той ще "скочи" до средата. Има ли някакъв начин как да направите това?
UISlider с възможност за кликване
Отговори (2)
Искам да предложа нещо подобно на jrtc27, но без подкласове: добавете UI(Tap)GestureRecognizer
към плъзгача.
UISlider *slider = [[[UISlider alloc] init] autorelease];
//configure slider
UITapGestureRecognizer *tapGestureRecognizer = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(sliderTapped:)] autorelease];
[slider addGestureRecognizer:tapGestureRecognizer];
- (void)sliderTapped:(UIGestureRecognizer *)gestureRecognizer {
UISlider *slider = (UISlider *) gestureRecognizer.view;
//setValue
}
person
vikingosegundo
schedule
20.04.2012
И как ще получа стойността от мястото, върху което съм кликнал?
- person Michal; 20.04.2012
позволете ми да позная: не обичате да търсите документация, нали? Но намек:
locationInView:
трябва да ви помогне. и има много примерни кодове за разпознаване на жестове в SO и в мрежата.
- person vikingosegundo; 20.04.2012
Не, аз съм начинаещ в какаото, израснал съм с езици, свързани с Java, така че съм свикнал с методи като get-, set-, is-, on- и т.н., които не се използват толкова много в Objective-C. В момента това е locationInView, което наистина изглежда логично, но бих търсил нещо като...getLocationInView. Ще свикна, сега се уча :)
- person Michal; 20.04.2012
+1: По-добър отговор от моя, въпреки че моят поддържа iOS 3 (и 2...) :)
- person jrtc27; 22.04.2012
Това наистина не работи за мен, тъй като изглежда, че открива само кликвания върху палеца, а не върху която и да е част от плъзгача.
- person marcgg; 07.10.2012
Подкласирайте го и след това променете метода -touchesBegan. Ако докосването е достатъчно далече, извикайте -setValue:, в противен случай извикайте супер изпълнението (ако искате винаги да скача, можете просто винаги да извиквате -setValue:).
person
jrtc27
schedule
20.04.2012
Леле, изглежда сложно за една функционалност. Поради натиска на времето смятам, че ще трябва да предам това... Благодаря ви все пак.
- person Michal; 20.04.2012