我的按钮上有一个阴影

Pad*_*215 6 iphone objective-c ios

我正在为iPad应用程序创建一个程序按钮.当我看到按钮时,它下面看起来像是一个阴影类型的东西.它是什么,我怎么能摆脱它?

阴影按钮

这是创建它的代码:

UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
myButton.titleLabel.font = [UIFont fontWithName:@"Trebuchet MS" size:12];
[myButton setTitle:@"test" forState:UIControlStateNormal];
myButton.frame = CGRectMake(0, 0, self.leftScrollView.frame.size.width, 50);

UIImageView *myImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"gear12.png"]];

[myButton addSubview:myImageView];
[self.leftScrollView addSubview:myButton];
Run Code Online (Sandbox Code Playgroud)

更新:

好的,我注意到我只在滚动视图中得到了这个效果.如果我将它添加到视图中,没有阴影效果.

顶部测试按钮,按钮是视图的子视图.底部按钮是滚动视图的子视图,滚动视图是视图的子视图(按钮/视图与按钮/滚动视图/视图).

白色部分是视图,灰色是滚动视图/视图.

阴影效果2

更新2:

正如robmayor所指出的那样,UIButtons总是具有双线效果,当背景颜色为白色时不会引起注意.蓝色是视图,灰色是子视图scrollview.

在此输入图像描述

use*_*119 9

这个问题很老(6个月),但我找到了一个解决方案来删除/掩盖双线的这种不良影响.

[yourButton.layer setBackgroundColor: [[UIColor blackColor]CGColor]];
[yourButton.layer setBorderWidth:1.0f];
[yourButton.layer setBorderColor:[[UIColor blackColor]CGColor]];
[yourButton.layer setShadowOpacity:0.1f];
[yourButton.layer setCornerRadius:10];
Run Code Online (Sandbox Code Playgroud)

选择的UIColor取决于视图的当前背景.

结果: 在此输入图像描述


rob*_*off 5

在iPad上,圆角矩形UIButton始终沿其底边绘制一条白线.如果按钮的超级视图为白色,则无法看到白线,但它仍然存在.

你有几个选择:

  • 使superview变白.这是最简单的,但你可能不喜欢它的外观.

  • 在您喜欢的图像编辑器中制作一些圆角矩形图像.将按钮类型设置为自定义,并将圆角矩形图像设置为按钮的图像.

  • 创建UIButton的子类并覆盖其drawRect:方法.

  • 设置按钮类型自定义和使用该按钮的层特性(button.layer.backgroundColor,button.layer.borderColor,button.layer.borderWidth,button.layer.cornerRadius),得到按钮圆角的矩形的外观.button.layer.backgroundColor触摸按钮时,如果您希望它像普通按钮一样变蓝,则必须更新.(实际上,正常的使用蓝色渐变.)