2013-08-25 130 views
3

中的iOS應用程序,我目前UISegmented控制男性和女性看起來是這樣的:如何通過故事板設置UISegmentedControl背景圖像?

enter image description here

現在我想改變這些背景圖片segments.So我在故事板爲如下:

For Segment 0: 

enter image description here

For Segment 1: 

enter image description here

After this changes,I got the result as below : 

enter image description here

爲什麼這些圖像相互重疊?任何特定的原因還是這些細分市場的大小是根據圖像大小而定的?如何設置分段的背景圖像而不影響分段的大小(完整圖像應顯示在分段的背景中而不是重疊)?

任何幫助將不勝感激。

+0

我發現使用使用圖像時UISegmentedControl只是一種痛苦。也許你可以創建你自己的UIView子類來獲得最大的靈活性 - 這就是我最終做的。 – SEG

+0

@SEG:但是當我們使用我們自己的UIView子類時,我們無法獲得分段控件的特性。 – Ponting

+0

是的,你需要重新創建。創建一個您傳遞圖像和字符串的設置方法。在該方法中,添加所需數量的UIButton(設置相應的圖像和/或字符串),爲每個UIButton設置一個標籤,以便能夠知道哪個按鈕被按下。在按鈕的touch-up-inside處理程序中,調用委託方法或塊。重新創建UISegmentedControl並不難! – SEG

回答

5

嘗試在這樣的代碼中進行自定義。

[self.segmentedControl setDividerImage:[UIImage imageNamed:@"style_segmented_control_delimiter.png"] 
        forLeftSegmentState:UIControlStateSelected 
         rightSegmentState:UIControlStateNormal 
           barMetrics:UIBarMetricsDefault]; 

    [self.segmentedControl setDividerImage:[UIImage imageNamed:@"style_segmented_control_delimiter.png"] 
        forLeftSegmentState:UIControlStateNormal 
         rightSegmentState:UIControlStateNormal 
           barMetrics:UIBarMetricsDefault]; 

    [self.segmentedControl setBackgroundImage:[UIImage imageNamed:@"style_segmented_control_normal_mid.png"] 
            forState:UIControlStateNormal 
           barMetrics:UIBarMetricsDefault]; 

    [self.segmentedControl setBackgroundImage:[UIImage imageNamed:@"style_segmented_control_press_mid.png"] 
            forState:UIControlStateSelected 
           barMetrics:UIBarMetricsDefault]; 
0

圖像重疊的主要原因是圖像的大小和分段大小。

  • 正確設置圖像大小。例如,如果您有兩個線段,請設置尺寸圖像(totoalWidthOfSeg/2)。
  • 可能有一定的差距可能會爲段之間出現我們要設置devider形象也