2011-11-02 43 views
8

在我的應用程序中,我有一個位於背景圖像頂部的UITextField。在iOS 4下,我必須將backgroundColor屬性設置爲'clearColor',以使其看起來正確。在iOS 4的文本字段看起來像這樣...從iOS 4到iOS 5的UITextField背景行爲更改

enter image description here

這是我希望它看起來。現在,由於升級到4.3的Xcode(iOS 5中),當我重新運行在同一個項目,這個盒子看起來像這樣...

enter image description here

哎呀。所以在iOS 5下,我將backgroundColor屬性更改爲'whiteColor',並且它工作正常。但是現在,在iOS的4.x中框看起來像這樣...

enter image description here

注醜陋的白色角落!所以,請任何人都可以告訴我我應該在這裏做什麼,以便在iOS 4和iOS 5下看起來很正常(即看起來像第一張圖片!)。

非常感謝, 西蒙

+2

您是否使用更新的SDK重建? – BoltClock

+1

只是要知道..你試着通過導入QuartzCore並設置textField.layer.backgroundColor = [UIColor clearColor] .CGColor; ? – Mat

+1

不知道這裏發生了什麼 - 但它現在正在工作。我刪除了行來設置backgroundColor屬性,這一切都似乎罰款4和5. – Simon

回答

3

前幾天我遇到了同樣的問題。要解決這個問題,我只需設置borderStyle並註釋backgroundColor行。一切工作正常,無論是iOS4和iOS5。

// textField.backgroundColor = [UIColor clearColor]; // just leave it, dont't set 
textField.borderStyle = UITextBorderStyleRoundedRect; 
+0

我已經標記了這個正確的,因爲我相當肯定這也是爲我修正的,但所有的誠實都不能100%,因爲這是一個模糊的問題。 – Simon

+0

這對我來說也是正確的答案。我做了這個單一的改變,我的問題已經解決,在所有的測試iOS 4.3到5.1。 (我的項目中的問題與原文中的描述完全相同。) – Douglas

1

有時你可能必須重建項目。另外,試着在一個全新的項目中做這件事,看它是否實際上是對Xcode的一個新的改變,或者如果它只是用於縮小事情的特定項目。如果您隨後將其隔離爲您的特定項目出現問題,請嘗試「完成」以查看它是否點擊。但我看你解決它:=)

2

這是我做過什麼來解決這個問題,你可以檢查設備上運行的iOS版本,並做相應的處理,這樣

float version = [[[UIDevice currentDevice]systemVersion]floatValue]; 
if(version < 5.0) 
{ 
//user clear color 
}else 
{ 
//use white color 
} 

希望這可以幫助你。