2013-05-27 62 views
1

我想爲項目製作自定義UISwitch。我想改變文字以及背景。自定義UISwitch兼容所有版本的iOS

我經歷了堆棧溢出的多個帖子。有些地方只是圖像繪製或核心圖形繪製。我不希望他們兩個都不夠用。

  1. Custom UISwitch & App Store approval
  2. UISwitch - change from on/off to yes/no
  3. http://www.catamount.com/blog/uicustomswitch-customizing-uiswitch-color-it-change-labels/

但我需要一個代碼,這將是足夠的的iOS 4.2和iOS版6.0。

回答

2

使用此選項可以更改背景顏色。這改變了掉顏色UISwitch控制

// Set the tint color for the On state. Here we set green colour tint for On state 
[customizedSwitch setOnTintColor:[UIColor colorWithRed:64.0/255 green:128.0/255.0 blue:64.0/255.0 alpha:1.0]]; 

// Set the tint color for the Off state. Here we set green red tint for Off state 
[customizedSwitch setTintColor:[UIColor colorWithRed:255.0/255 green:128.0/255.0 blue:128.0/255.0 alpha:1.0]]; 

// Set the tint color for the round shaped Thumb. Here we set blue tint for the Thumb 
[customizedSwitch setThumbTintColor:[UIColor colorWithRed:64.0/255 green:64.0/255.0 blue:255.0/255.0 alpha:1.0]]; 

注:要修改框架控制的私有視圖層次是絕對不支持,並可能會導致操作系統更新不兼容,如果你嘗試使用uiswitch子視圖來修改文本。

這兩個任務使用這個不錯的教程:customizing-user-interface-uiswitch 希望它可以幫助你。

+0

他要求在iOS 4.2上工作的代碼。 'setOnTintColor'is iOS 5.0+,'thumbTintColor'is iOS 6.0+ – Vinzzz

+0

如何設置標題而不使用iOS 6.0上的圖像? – parilogic

+0

您可以使用:((UILabel *)[[[[[[[myswitch subviews] lastObject]子視圖] objectAtIndex:2]子視圖] objectAtIndex:0])。text = @「YES」; ((UILabel *)[[[[[[myswitch subviews] lastObject] subviews] objectAtIndex:2] subviews] objectAtIndex:1])。text = @「NO」; –