#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. Вы, должно быть, поняли это, но для ползунка (дорожки) вы можете указать изображение для левой (минимальной стороны) и правой (максимальной стороны). Изображения автоматически растягиваются по горизонтали при перемещении большого пальца. Закругленная часть в конце изображения не растягивается, потому что мы говорим, что это часть «ширины конечной крышки».