Ответ 1
Гораздо проще:
ObjC
[sli setThumbImage:[[[UIImage alloc] init] autorelease] forState:UIControlStateNormal];
Быстрая версия
sli.setThumbImage(UIImage(), for: .normal)
Я пытаюсь создать 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];
ObjC
[sli setThumbImage:[[[UIImage alloc] init] autorelease] forState:UIControlStateNormal];
Быстрая версия
sli.setThumbImage(UIImage(), for: .normal)
Самый простой способ - просто установить цвет Thumb Tint на Очистить в построителе интерфейса - вот так...
Voila!
Это старая ветка, но я нашел ее, чтобы кто-то еще мог.
Вот решение этого в 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()
Однострочное решение:
[_slider setThumbImage:[UIImage new] forState:UIControlStateNormal];
Я бы попробовал подклассификацию UISlider
и переопределить -thumbRectForBounds:trackRect:value:
, чтобы вернуть NSZeroRect. Если это не так, попробуйте переопределить -thumbImageForState:
, чтобы вернуть nil.