Как сделать так, чтобы ползунок не становился плохим рядом с краем

Я предоставил графику слайдера для моего слайдера.

Вот результат: введите здесь описание изображения

Затем справа введите здесь описание изображения

Итак, вы видите, что край стал «коробкой», а не закруглен. Чего я действительно хочу, так это чего-то, что ближе к тому, что предлагает Apple. Это код, который я использовал для переключения между использованием пользовательского изображения слайдера и нуля:

- (IBAction)groupPinButton:(id)sender {
    self.groupPinButton.selected = ! self.groupPinButton.selected;
    UIImage *minImage = [[UIImage imageNamed:@"minimum_slider.png"]resizableImageWithCapInsets2:UIEdgeInsetsMake(0, 5, 0, 0)];
    UIImage *maxImage = [[UIImage imageNamed:@"maximum_slider.png"]resizableImageWithCapInsets2:UIEdgeInsetsMake(0, 0, 0, 5)];
    if (self.groupPinButton.selected)
    {


        [self.distanceSlider setMaximumTrackImage:maxImage forState:UIControlStateNormal];
        [self.distanceSlider setMinimumTrackImage:minImage forState:UIControlStateNormal];
    }
    else{

        [self.distanceSlider setMaximumTrackImage:nil forState:UIControlStateNormal];
        [self.distanceSlider setMinimumTrackImage:nil forState:UIControlStateNormal];
    }
}

Если я установлю maxTrackImage равным нулю, это будет скриншот:

введите здесь описание изображениявведите здесь описание изображения

Что выглядит намного симпатичнее. Но я хочу настроить.

Картинки, которые я использую для minimum_slider.png и max_slider.png, следующие:

введите здесь описание изображениявведите здесь описание изображения

и вы можете добраться туда в

https://i.stack.imgur.com/n30aw.png

и

https://i.stack.imgur.com/sF9SQ.png

Обратите внимание, что другой край в порядке. Поэтому, когда ползунок находится где угодно, кроме максимума и минимума, все работает нормально. Если ползунок на максимуме, то дальний правый угол перепутан. Крайний левый угол в порядке.


person Anonymous White    schedule 23.10.2012    source источник


Ответы (1)


Ах! Такая же проблема была у меня. Когда вы дойдете до конца программы, а ползунок находится на максимуме, все изображение дорожки теперь будет левой стороной, в вашем примере это «minimum_slider.png». Таким образом, не отображается часть изображения «maximum_slider» (что дало бы вам закругленный правый край), а только квадратная правая сторона «minimum_slider».

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

Я еще не сделал этого, так как я все еще не понимаю, как работает UIEdgeInsets (я нахожу документацию ужасной!), и теперь мне достаточно дорожки по умолчанию. Так что дайте нам всем знать, когда вы решите это.

person coco    schedule 25.10.2012
comment
Я подозреваю, что подозрения Джртертона в отношении ваших подозрений верны, и ваш ответ будет помечен, как только я подтвержу его подозрительные подозрения. - person Anonymous White; 26.10.2012
comment
Пока я жду в напряжении, поскольку эти предположения приостанавливаются, я хотел бы добавить: добавление моих собственных изображений для дорожек и большого пальца я считаю проблематичным по двум причинам. Во-первых, большой палец не так хорошо цепляется, как встроенный, и я часто теряю его после короткого движения. Во-вторых, когда я скрываю и показываю его с помощью анимации 1/2 секунды, я обнаруживаю, что элементы появляются и исчезают с разной скоростью. Например, толстая красная дорожка и красная кнопка приложения Netflix. Мне не нравится, как это проявляется и прячется. - person coco; 26.10.2012