2016-08-22 3 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]; 

: 당신은 당신은 각각의 방법을 상속하여 더 많은 사용자 정의 할 수 있습니다 방법

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

UISlider를 상속과 오버 라이딩 사용자 정의 할 수 있습니다

.

enter image description here

enter image description here

감사합니다.

+0

와우 대단한 답변 –

+0

UISlider의 높이를 제어 할 수 있습니까? –

+0

@AsiGivati, 지금 대답을 확인해 주시겠습니까? –

0

constraints이 충돌하지 않는지 확인하십시오. auto layout을 사용하는 경우 sliderPin의 너비와 높이를 동일하게 설정하거나 가로 세로 비율을 1 : 1로 설정하면 문제가 해결 될 수 있습니다.

관련 문제