我用下面的代碼定製一個UISegmentedControl的外觀:UISegmentedControl錯定製處理
UIImage *bg = [UIImage imageNamed:@"segment_bg"];
UIImage *bg_sel = [UIImage imageNamed:@"segment_sel"];
UIImage *leftSep = [UIImage imageNamed:@"segment_div_sx"];
UIImage *rightSep = [UIImage imageNamed:@"segment_div_dx"];
UIEdgeInsets selectionInsets = UIEdgeInsetsMake(0, 8, 0, 8);
[self.segmentedControl setBackgroundImage:[bg resizableImageWithCapInsets:UIEdgeInsetsZero]
forState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
[self.segmentedControl setBackgroundImage:[bg_sel resizableImageWithCapInsets:selectionInsets]
forState:UIControlStateSelected
barMetrics:UIBarMetricsDefault];
[self.segmentedControl setBackgroundImage:[bg resizableImageWithCapInsets:UIEdgeInsetsZero]
forState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
[self.segmentedControl setDividerImage:[bg resizableImageWithCapInsets:UIEdgeInsetsZero]
forLeftSegmentState:UIControlStateNormal
rightSegmentState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
[self.segmentedControl setDividerImage:rightSep
forLeftSegmentState:UIControlStateSelected
rightSegmentState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
[self.segmentedControl setDividerImage:leftSep
forLeftSegmentState:UIControlStateNormal
rightSegmentState:UIControlStateSelected
barMetrics:UIBarMetricsDefault];
一切都看起來不錯,你可以在下面的圖片中看到,也切換時,其他段好看:
但是當我從第三段切換到第一段時,段分隔符是錯誤的(右端沒有圓角,所以不是正確的分隔符)。
如果分段控制具有多個段,這種情況總是(只)從第三節段到第一切換時。
我發現該的valueChanged後發送setNeedsLayout消息給UISegmentedControl對象:事件校正的顯示。
現在,我定製分段控件的方式有什麼問題嗎?它是已知的錯誤還是我應該報告爲一個?
它報告的bug記者。 – 2012-08-04 11:33:35