2016-08-22 4 views
1

Я пытаюсь создать простой круг. Я делал это раньше, и теперь по какой-то причине круг не точен (изображение прикреплено). В моем коде я беру высоту над представлением «sliderPin», а половина значения для него - для cornerRadius его слоя. Я попытался взять значение высоты ограничения для представления «sliderPin», но я получил те же результаты. * Ширина & Высота обзора равна. Мой код:Круг UIView не создан должным образом

[self.sliderPin.layer setBorderColor:borderColor]; 
[self.sliderPin.layer setBorderWidth:2]; 
self.sliderPin.clipsToBounds = YES; 
self.sliderPin.layer.masksToBounds = YES; 
[setCornerRadius:CGRectGetHeight(self.sliderPin.frame)/2]; 

enter image description here

+0

проверить свой круг вид высота и ширина оба одинаковые? –

+0

Да. ширина и высота равны –

+0

Это слайдер или переключатель? Я имею в виду, вам нужен слайдер или переключатель? –

ответ

2

Лучше использовать UISlider с заданными методами. Это может решить вашу проблему.

UIImage *minImage = [[UIImage imageNamed:@"slider_minimum.png"] 
     resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 0)]; 
    UIImage *maxImage = [[UIImage imageNamed:@"slider_maximum.png"] 
     resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 0)]; 
    UIImage *thumbImage = [UIImage imageNamed:@"thumb.png"]; 

     [[UISlider appearance] setMaximumTrackImage:maxImage 
      forState:UIControlStateNormal]; 
     [[UISlider appearance] setMinimumTrackImage:minImage 
      forState:UIControlStateNormal]; 
     [[UISlider appearance] setThumbImage:thumbImage 
      forState:UIControlStateNormal]; 

Для Высота:

Вы можете настроить наследование UISlider и Преобладающего методом

- (CGRect)trackRectForBounds:(CGRect)bounds { 
    CGRect rect = CGRectMake(0, 0, 100, 30);//change it to any size you want 
    return rect; 
} 

Вы можете настроить более наследуя соответствующие методы.

enter image description here enter image description here

Спасибо.

+0

Wow great answer –

+0

Можете ли вы контролировать высоту UISlider? –

+0

@AsiGivati, вы можете проверить ответ сейчас. –

0

Убедитесь, что constraints не противоречат друг другу. Если вы используете auto layout, установите для sliderPin ширину и высоту равные ограничения или соотношение сторон 1: 1, чтобы решить проблему.

Смежные вопросы