UIButton:为什么圆角可见?

时间:2013-05-28 08:46:27

标签: ios uibutton

我有一个UIButton,其类型在IB中设置为'custom'。在代码中,按钮的格式如下:

self.btnScan.layer.borderColor = [[UIColor blackColor] CGColor];
self.btnScan.layer.borderWidth = 1.0f;
self.btnScan.layer.backgroundColor = [[UIColor whiteColor] CGColor];
self.btnScan.layer.cornerRadius = 0.0f;

在IOS-Simulator中它显示正确,但是当我在设备(iPad 2)上进行测试时,除了实际的黑色非圆形边框外,还有浅灰色的圆角。 见图:

原始尺寸:corners

放大尺寸:corners enlarged

我也试过

[self.btnScan.layer setMasksToBounds:YES];

没有成功。

如何消除那些灰色圆角?任何帮助将不胜感激。

编辑:这个错误的原因可能只出现在设备上,而不是出现在模拟器中。我还尝试了xCo​​de clean并重新安装了应用程序。

4 个答案:

答案 0 :(得分:2)

显然它仍然是标准UIButtonTypeRoundedRect。初始化有问题。仔细检查IB和您的初始化代码。如果按钮是自定义的,您将看不到任何内容。

如果它只出现在设备上,可能是设备上有一个旧的nib文件。删除应用程序,而不是在Xcode中清除,而不是重新安装。

答案 1 :(得分:1)

感谢您的所有答案,我确信您的建议在99,99%的案例中都有效。但在我的特殊情况下,似乎xCode完全搞砸了。

我多次重启xCode,双重检查IB和代码中的所有设置(例如插座)。我清理了这个项目。我从iPad上删除了应用程序并重新安装了它。我甚至在xib中创建了一些新的按钮,它们都有同样的问题。

最终唯一有帮助的是删除xib并从头开始重新创建它。 即使很难这可能不是最美丽的解决方案,它解决了这个问题。也许这有助于某人。

答案 2 :(得分:0)

这在我的最终正常工作。所以我认为你的代码或xib会出错。

见此图片。

enter image description here

答案 3 :(得分:-1)

button.opaque = NO;
button.backgroundColor = [UIColor clearColor];

没有看到uibutton的习惯......希望这有帮助...

试试这个:

#import <QuartzCore/QuartzCore.h>
yourButton.layer.cornerRadius = 10; // this value vary as per your desire
yourButton.clipsToBounds = YES;