UISlider трябва да има диапазон 1-5 и да се подравнява сам до най-близкия прорез

Имам 4 UISlider, които трябва да имат стойности от 1-5, като 1 е минималната стойност, а 5 максималната.

Настроих плъзгачите и ги наричам slider1, slider2, slide3, slider4

Също така съм настроил изходите и т.н. и съм задал минималните и максималните стойности в интерфейса builder

Въпреки това, когато превъртя плъзгача, той просто се плъзга, вместо да се придържа към скалата 1-5.

Опитах следното и се провалям ужасно, тъй като видях това при друг SO въпрос

- (IBAction) sliderValueChanged:(id)sender
{

    [sender setValue:((int)((sender getValue] + 2.5) / 5) * 5) animated:NO];

}

АКТУАЛИЗИРАНО: Това изглежда работи като решение

   - (IBAction) sliderValueChanged:(UISlider *)sender
{

    NSUInteger index = (NSUInteger)([sender value] + 0.5); // Round the number.
    [sender setValue:index animated:NO];
    NSLog(@"index: %i", index);

 //   NSNumber *number = [numbers objectAtIndex:index]; // <-- This is the number you want.
 //   NSLog(@"number: %@", number);

}

можете ли да ми помогнете с това? Получавам грешка с функцията getValue също по-горе.


person kratos    schedule 05.02.2013    source източник


Отговори (1)


Objective-C не е Java, конвенцията за именуване за getters е различна. Използвайте value вместо getValue (и все пак, защо не декларирате sender като UISlider *?)

person Community    schedule 05.02.2013
comment
@kratos Да, дайте на компилатора възможно най-много съвети, и двамата ще имате по-малко главоболия. - person ; 05.02.2013
comment
Актуализирах кода си по-горе и изглежда работи... Благодаря - person kratos; 05.02.2013