2013-10-01 54 views
0

在這個時候,我想保持我的代碼與Xcode 4兼容,因此我不想升級我的nib文件。如何在不升級nib文件的情況下使用iOS7控件?

但是,我無法更改UISegmentedControl控件色調顏色,並且在不升級nib文件的情況下使用控件的新iOS7版本。

我見過..

[NSUserDefaults standardUserDefaults] setObject:@Yes [email protected]"UIUseLegacyUID"] 

這將讓iOS6的佈局,我不知道,如果有一個未來的版本或這是否會幫助嗎?

+0

我已經在這裏找到了答案...... http://stackoverflow.com/questions/12773400/segmented-control-tintcolor-in-ios-6 – Jules

+0

迷人。這看起來像是一個bug。你能否向蘋果公司提交一份關於這方面的錯誤報告 –

+0

我讀過蘋果正試圖在視圖間標準化控件。但是,此修復最初是針對iOS5的,因爲它不適用於iOS6。所以我認爲他們可能已經改變了這種新的控制方式。 – Jules

回答

0

在Xcode 5,你可以改變你的XIB使用的Xcode 4和iOS 6

的屬性默認情況下,您有:

​​

但是,您可以更改屬性的Xcode 4.6和iOS 6:

enter image description here

+0

是的,我知道如何做到這一點,但這樣做不允許我訪問iOS7版本的分段控件。 – Jules

0

可以更改色調顏色在這樣的代碼:

UISegmentedControl *segmentedControl = ...; 
// For backwards compatibility 
if ([segmentedControl respondsToSelector:@selector(tintColor)]) 
{ 
    segmentedControl.tintColor = [UIColor redColor]; 
} 
+0

是的,但它不適用於iOS7,除非您使用升級後的nib控件。 – Jules

0

您可以爲每個段設置不同的段圖像和顏色。對於顏色你可以使用:

//get the subviews of the segmentedcontrol 

NSArray *arri = [segmentedControl subviews]; 

//change the color of every subview(segment) you have 

[[arri objectAtIndex:0] setTintColor:[UIColor redColor]]; 

[[arri objectAtIndex:1] setTintColor:[UIColor greenColor]]; 
相關問題