从iOS 4到iOS 5的UITextField背景行为更改
问题描述:
在我的应用程序中,我有一个位于背景图像顶部的UITextField。在iOS 4下,我必须将backgroundColor属性设置为'clearColor',以使其看起来正确。在iOS 4的文本字段看起来像这样...从iOS 4到iOS 5的UITextField背景行为更改
这是我希望它看起来。现在,由于升级到4.3的Xcode(iOS 5中),当我重新运行在同一个项目,这个盒子看起来像这样...
哎呀。所以在iOS 5下,我将backgroundColor属性更改为'whiteColor',并且它工作正常。但是现在,在iOS的4.x中框看起来像这样...
注丑陋的白色角落!所以,请任何人都可以告诉我我应该在这里做什么,以便在iOS 4和iOS 5下看起来很正常(即看起来像第一张图片!)。
非常感谢, 西蒙
答
前几天我遇到了同样的问题。要解决这个问题,我只需设置borderStyle并注释backgroundColor行。一切工作正常,无论是iOS4和iOS5。
// textField.backgroundColor = [UIColor clearColor]; // just leave it, dont't set
textField.borderStyle = UITextBorderStyleRoundedRect;
答
有时你可能必须重建项目。另外,试着在一个全新的项目中做这件事,看它是否实际上是对Xcode的一个新的改变,或者如果它只是用于缩小事情的特定项目。如果您随后将其隔离为您的特定项目出现问题,请尝试“完成”以查看它是否点击。但我看你解决它:=)
答
这是我做过什么来解决这个问题,你可以检查设备上运行的iOS版本,并做相应的处理,这样
float version = [[[UIDevice currentDevice]systemVersion]floatValue];
if(version < 5.0)
{
//user clear color
}else
{
//use white color
}
希望这可以帮助你。
您是否使用更新的SDK重建? – BoltClock
只是要知道..你试着通过导入QuartzCore并设置textField.layer.backgroundColor = [UIColor clearColor] .CGColor; ? – Mat
不知道这里发生了什么 - 但它现在正在工作。我删除了行来设置backgroundColor属性,这一切都似乎罚款4和5. – Simon