gpt4 book ai didi

iphone - UIButton Rounded Rect 不需要的 3D 效果

转载 作者:行者123 更新时间:2023-11-29 13:27:36 25 4
gpt4 key购买 nike

我在类型为 RoundedRect 的 Nib 上有几个 UIButtons,在 iOS 6 之前看起来很漂亮很扁平。在 iOS 6 中,虽然他们已经获得了一个我无法摆脱的 3D 效果边框(我会提供一张图片,但我的名声太小了)。任何人都可以建议如何让漂亮的公寓回头看看吗?

我敢肯定,这将是我问过的最愚蠢的问题,而且答案会如此简单,我会自责一个星期。但我找不到它,非常感谢任何帮助。

最佳答案

我不知道为什么会出现这种效果,但一种方法是避免使用 Rounded Rect。我总是使用自定义按钮。您可以以任何您想要的方式在代码中自定义它们。

例如:

button.layer.cornerRadius = 8;  //this gives it rounded corners
button.layer.borderColor = [[UIColor redColor] CGColor] ; // this is how you set a border
button.layer.borderWidth = 2; //this is how you set the width of the border

UIButton 的图层成员是一个CALayer,你可以给它设置阴影。 This是一个很好的教程。

您还可以添加渐变背景以使按钮更好看,如下所示:

CAGradientLayer *layer = [CAGradientLayer layer];

layer.colors = [NSArray arrayWithObjects:
(id)[[UIColor colorWithRed:skinRed green:skinGreen blue:skinBlue alpha:0.9] CGColor],
(id)[[UIColor colorWithRed:skinRed green:skinGreen blue:skinBlue alpha:0.8] CGColor],
(id)[[UIColor colorWithRed:skinRed green:skinGreen blue:skinBlue alpha:0.7] CGColor],
(id)[[UIColor colorWithRed:skinRed green:skinGreen blue:skinBlue alpha:0.6] CGColor],
(id)[[UIColor colorWithRed:skinRed green:skinGreen blue:skinBlue alpha:0.5] CGColor],
(id)[[UIColor colorWithRed:skinRed green:skinGreen blue:skinBlue alpha:0.4] CGColor],
(id)[[UIColor colorWithRed:skinRed green:skinGreen blue:skinBlue alpha:0.3] CGColor],
(id)[[UIColor colorWithRed:skinRed green:skinGreen blue:skinBlue alpha:0.2] CGColor],
(id)[[UIColor colorWithRed:skinRed green:skinGreen blue:skinBlue alpha:0.1] CGColor],
(id)[[UIColor colorWithRed:skinRed green:skinGreen blue:skinBlue alpha:0.0] CGColor],
nil];

layer.locations = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:0.1],
[NSNumber numberWithFloat:0.2],
[NSNumber numberWithFloat:0.3],
[NSNumber numberWithFloat:0.4],
[NSNumber numberWithFloat:0.5],
[NSNumber numberWithFloat:0.6],
[NSNumber numberWithFloat:0.7],
[NSNumber numberWithFloat:0.8],
[NSNumber numberWithFloat:0.9],
[NSNumber numberWithFloat:1.0],
nil];

layer.startPoint = CGPointMake(0, 0);
layer.frame = button.layer.bounds;

layer.endPoint = CGPointMake(0, 1);
layer.contentsGravity = kCAGravityResize;
[button.layer insertSublayer:layer below:button.titleLabel.layer];

button.layer.masksToBounds = TRUE;

如您所见,使用一些定义应用程序皮肤 RGB 的全局 int 变量会很不错。这样你就可以在几秒钟内修改它。

因此,通过使用这种方式,您可以避免 Apple 对 SDK 版本所做的更改。您可以以任何您想要的方式自定义它,实现比您在 IB 中所能获得的更多。

希望这对您有所帮助。

干杯!

关于iphone - UIButton Rounded Rect 不需要的 3D 效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12726335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com