2011-11-02 41 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 
} 

希望这可以帮助你。