2012-05-29 21 views
5

Bir UISegmentedControl ürününü özelleştirmek için arka plan ve bölücü görüntüleri kullanıyorum. Bununla birlikte, ayırıcı görüntü ile segment denetimi için arka plan resmi arasında bir boşluk görüntülenir.Bölücü görüntülü UISegementedControl boşluk içeriyor

İşte ben bütün bölücü görüntüleri kontrol segmenti görüntüleri

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]; 

ayarlamak için kullanıyorum kod boşluk burada

enter image description here

Ve gösteren bir ekran görüntüsü olduğunu, ve bunlar tüm aynı genişlikler ve saydam piksel içermez.

Bu boşlukları bölümlere ayrılmış denetimden nasıl kaldırırım?

+0

Uygulama ayrıntılarınıza biraz daha ekler misiniz? Alt sınıfını UIAppearanceProxy kullanıyor musunuz? – Rexeisen

+0

@Rexeisen Arka plan görüntülerini ayarlamak için kullandığım kodu ekledim – Paul

cevap

3

Bölücüler için kullandığınız görüntülerin (leftSelected, rightselected ve neitherselected) hepsinin aynı genişlikte olduğundan emin olun. Çoğu zaman neitherselected ortadaki çizgiye sahip olduğundan, diğerlerinden 1pt daha geniş. Hepsi aynı olmalı!

İlgili konular