2014-11-04 9 views
1

Я создал UISlider и затем установить оттенок цвета для мин трека, как это:UISlider искажены закругленный угол

[slider setMinimumTrackTintColor:[UIColor whiteColor]]; 

Однако я в конечном итоге с искаженной закругленным углом на левой стороне, как это. Что я делаю ?

enter image description here

Edit: Вот код, который воспроизводит проблему:

UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(40, 40, 180, 50)]; 

[slider setMinimumTrackTintColor:[UIColor whiteColor]]; 
+0

Вы можете найти его в редактировании. –

ответ

0

Я испытал тот же глюк и нашел решение, добавив minimumTrackImage для слайдера, на основе цвета.

UIImage *black = [UIImage imageWithColor:[UIColor blackColor]]; 
[self.slider setMinimumTrackImage:black forState:UIControlStateNormal]; 

Добавить категорию UIImage со следующим методом - imageWithColor

+ (UIImage *)imageWithColor:(UIColor *)color { 
    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0, 1.0); 
    UIGraphicsBeginImageContext(rect.size); 
    CGContextRef context = UIGraphicsGetCurrentContext(); 

    CGContextSetFillColorWithColor(context, [color CGColor]); 
    CGContextFillRect(context, rect); 

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return image; 
} 
Смежные вопросы