проблема с UISlider: печать значений ползунка и изменение стиля

#ios #uislider

#iOS #uislider

Вопрос:

Я столкнулся с некоторой проблемой при программировании на UISlider.

1) стиль: Я знаю, что мы должны установить минимальное и максимальное изображения. Я просто не уверен, какие изображения и любая ссылка на изображение будут отличными? Я только хочу изменить цвет с синего на черный!

2) кроме того, мой код для UISlider таков :

в файле заголовка:

 UISlider *slider;
  

в файле кода:

  //slider
 CGRect frame=CGRectMake(10, 70, 300, 10);
 photoSlider=[[UISlider alloc] initWithFrame:frame];
 photoSlider.minimumValue=0.0;
 photoSlider.maximumValue=90.0; //maximumPhotoImage
 photoSlider.continuous=NO;
 photoSlider.value=10.0;
 photoSlider.backgroundColor=[UIColor clearColor];
 //photoSlider

 [photoSlider addTarget:self action:@selector(updateImage:)   forControlEvents:UIControlEventValueChanged];
 [self.view addSubview:photoSlider];

- (void) updateImage:(id) sender  
{
   NSLog(@"val: %d",photoSlider.value);
}
  

Значения, которые я получаю от функции, равны 0 на обоих концах и очень большому значению между ними (как положительные, так и отрицательные … случайные значения).

Кто-нибудь может любезно помочь мне? Спасибо.

Ответ №1:

В части 1, чтобы заменить синюю часть дорожки слайдера по умолчанию на черную, вы могли бы сделать снимок синей дорожки по умолчанию и преобразовать ее в более темные оттенки серого, подобные этому (нужен только левый конец и 1 пиксель растягиваемой части):
введите описание изображения здесь
и вызовите setMinimumTrackImage:forState: :

 UIImage *minTrackImg = [[UIImage imageNamed:@"MinimumTrackImage.png"] 
    stretchableImageWithLeftCapWidth:4 topCapHeight:0];
[photoSlider setMinimumTrackImage:minTrackImg forState:UIControlStateNormal];
  

Для части 2 зарегистрированные значения не имеют смысла, потому что value свойство имеет тип float , и вам нужно использовать %f вместо %d (см. Спецификаторы формата строки):

 NSLog(@"val: %f",photoSlider.value);
  

Комментарии:

1. спасибо за часть 2. что касается части 1, можете ли вы сказать мне, правильно ли я понимаю или нет? идея для части 1: мне нужны две фотографии, 1) где слайдер находится в начале и 2) где слайдер находится в конце. И мне также нужна картинка, чтобы изменить ползунок. Верно? Пожалуйста, дайте мне знать. Кроме того, есть ли какие-либо конкретные требования к разрешению изображений? есть ссылки на рисунки? спасибо 🙂

2. Вы, должно быть, поняли это, но для ползунка (дорожки) вы можете указать изображение для левой (минимальной стороны) и правой (максимальной стороны). Изображения автоматически растягиваются по горизонтали при перемещении большого пальца. Закругленная часть в конце изображения не растягивается, потому что мы говорим, что это часть «ширины конечной крышки».