UISlider set Изображение с ъгли

Тук имам нужда от заоблен uslider, но когато се опитам да задам изображения, той показва правоъгълно изображение,

Трябва ми подобно изображениевъведете описание на изображението тук

Ето моето кодиране

UIImage *volumeBackgroundImage = [[UIImage imageNamed:@"l2.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(9, 5, 7, 5)];
    [self.audioSlider setMinimumTrackImage:[[UIImage imageNamed:@"l1.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(9, 5, 7, 5)]
                               forState:UIControlStateNormal];
    [self.audioSlider setMaximumTrackImage:volumeBackgroundImage
                               forState:UIControlStateNormal];
    [self.audioSlider setThumbImage:[UIImage imageNamed:@"sliderhandle.png"]
                        forState:UIControlStateNormal];

Може ли някой да помогне за постигането на това


person dineshprasanna    schedule 05.10.2013    source източник


Отговори (3)


Трябва да имате изображения със заоблени ъгли. Например: въведете описание на изображението тук

След това просто използвайте това изображение по следния начин:

[_slider setMinimumTrackImage:[[UIImage imageNamed:@"black_dot.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(12, 12, 12, 12)]
    forState:UIControlStateNormal];

[_slider setMaximumTrackImage:[[UIImage imageNamed:@"blue_dot.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(12, 12, 12, 12) 
    forState:UIControlStateNormal];

(където black_dot.png е примерно изображение, а blue_dot.png ще бъде същото, но в син цвят)

(Ако изображението е пикселизирано - тогава трябва да получите това изображение два пъти по-голямо - изображение на ретината - [email protected])

(Или в случай, че наистина се нуждаете от по-малко изображение от дадения пример, просто преименувайте това изображение като [email protected] и вместо : UIEdgeInsetsMake(12, 12, 12, 12) използвайте: UIEdgeInsetsMake(6, 6, 6, 6))

Вижте повече информация тук: https://stackoverflow.com/a/8656216/894671

person Guntis Treulands    schedule 05.10.2013

Можете да опитате да нарисувате изображението с необходимия размер, вместо да добавяте изображение, което може да причини изкривяване.

Решение за изкривяване на плъзгача

person Pooja Kamath    schedule 21.01.2019

Мисля, че това се случва, защото кръглият край се генерира от UISlider нативно. Предполага се, че изображението на палеца ще покрие края в крайни позиции, така че няма да го преначертае.

Едно решение може да бъде сами да се погрижите за закръгляването в края:

self.audioSlider.layer.cornerRadius = 5.0;

Експериментирайте с тази стойност и трябва да работи.

Като алтернатива можете да се уверите, че вашите изображения имат заоблени краища.

person Mundi    schedule 05.10.2013
comment
не, господине, все още не работи, връща същия резултат. Има някакво решение - person dineshprasanna; 05.10.2013
comment
Кое решение опитахте? И двете? - person Mundi; 05.10.2013
comment
На първо място те връщат същите резултати. На второ място, когато поставя изображенията със заоблени ръбове, те се показват като пикселизирано изображение - person dineshprasanna; 05.10.2013
comment
Така че изглежда е достатъчно да се даде на изображенията по-висока разделителна способност. - person Mundi; 05.10.2013