Скрыть изображение большого пальца UISlider - PullRequest
24 голосов
/ 22 апреля 2011

Я пытаюсь создать UISlider без изображения большого пальца.

Как я могу это сделать, пока мой код:

UISlider *sli = [[UISlider alloc] initWithFrame:progressView.frame];
    [sli setThumbImage:nil forState:UIControlStateNormal];
    [sli setBackgroundColor:[UIColor clearColor]];

    [sli setMinimumTrackImage:[[UIImage imageNamed:@"ProgressBlueCap.png"] stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0] forState:UIControlStateNormal];
    [sli setMaximumTrackImage:[[UIImage imageNamed:@"ProgressBlueCapRight.png"] stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0] forState:UIControlStateNormal];

Ответы [ 5 ]

54 голосов
/ 14 сентября 2011

Намного проще:

Objc

[sli setThumbImage:[[[UIImage alloc] init] autorelease] forState:UIControlStateNormal];

Swift версия

sli.setThumbImage(UIImage(), for: .normal)
13 голосов
/ 12 августа 2015

Способ самый простой - это просто установить цвет оттенка большого пальца на Очистить в Интерфейсном Разработчике - вот так ...

enter image description here

Voila!

7 голосов
/ 09 апреля 2015

Это старая ветка, но я нашел ее, чтобы кто-то еще мог.

Вот решение этой проблемы в Swift.Я создаю пустой UIImage здесь программно, а затем назначаю его на большой палец.

    let rect = CGRect(x: 0, y: 0, width: 1, height: 1)
    UIGraphicsBeginImageContextWithOptions(CGSize(width: 1, height: 1), false, 0)
    UIColor.clear.setFill()
    UIRectFill(rect)
    if let blankImg = UIGraphicsGetImageFromCurrentImageContext() {
        slider.setThumbImage(blankImg, for: .normal)
    }
    UIGraphicsEndImageContext()
1 голос
/ 03 июля 2015

Однолинейное решение:

[_slider setThumbImage:[UIImage new] forState:UIControlStateNormal];
0 голосов
/ 22 апреля 2011

Я бы попробовал создать подкласс UISlider и переопределить -thumbRectForBounds:trackRect:value:, чтобы вернуть NSZeroRect.Если это не сработает, попробуйте переопределить -thumbImageForState:, чтобы вернуть ноль.

...