2012-05-29 2 views
5

배경 및 분 할부 이미지를 사용하여 UISegmentedControl을 사용자 정의하고 있습니다. 그러나 세그먼트 컨트롤의 경우 분할 자 이미지와 배경 이미지 사이에 공백이 나타납니다.디바이더 이미지가 포함 된 UISegementedControl에는 공백이 포함되어 있습니다.

여기에 내가 모든 분할 이미지를 확인 세그먼트 이미지

UIImage *selectedImage = [[UIImage imageNamed:@"segcontrol_selectround.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 10)]; 
UIImage *unselectedImage = [[UIImage imageNamed:@"segcontrol_unselectround.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 10)]; 
UIImage *leftSelected = [UIImage imageNamed:@"segcontrol_leftselected.png"]; 
UIImage *rightSelected = [UIImage imageNamed:@"segcontrol_rightselected.png"]; 
UIImage *neitherSelected = [UIImage imageNamed:@"segcontrol_bothunselected.png"]; 

[segment setBackgroundImage:unselectedImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
[segment setBackgroundImage:selectedImage forState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; 
[segment setDividerImage:leftSelected forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
[segment setDividerImage:rightSelected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; 
[segment setDividerImage:neitherSelected forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

을 설정하는 데 사용하고 코드의 공간 여기

enter image description here

등을 보여주는 스크린 샷입니다, 그리고 그들이 있습니다 모든 동일한 너비와 투명 픽셀을 포함하지 않습니다.

분할 된 컨트롤에서 이러한 공백을 제거하려면 어떻게합니까?

+0

구현 세부 정보를 조금 더 추가 할 수 있습니까? 그것을 하위 클래스 화하는 UIAppearanceProxy를 사용하고 있습니까? – Rexeisen

+0

@Rexeisen 백그라운드 이미지를 설정하는 데 사용하는 코드를 추가했습니다. – Paul

답변

3

디바이더 (leftSelected, rightselectedneitherselected)에 사용하는 이미지의 너비가 모두 동일한 지 확인하십시오. neitherselected은 중간에 선이 있기 때문에 다른 선보다 1pt가 넓기 때문입니다. 그들은 모두 동일해야합니다!

관련 문제