0

这可能是关于 iOS 中图层的初学者问题,但我无法找到处理它的正确方法......

我以编程方式创建一个 UIView 并向其添加一个按钮。

UIView *subview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)]; 
UIButton *mybutton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[mybutton setTitle:@"Test1" forState:UIControlStateNormal];
mybutton.frame = CGRectMake(0,0,50,50);
[subview mybutton];

比我对更改其图层属性的子视图演示文稿进行一些操作。例如,我更改视图边框半径并添加阴影:

[subview.layer setCornerRadius:10.0f];
[subview.layer setShadowColor:[UIColor blackColor].CGColor];
[subview.layer setShadowOpacity:0.8];
[subview.layer setShadowRadius:3.0];

我看到这些层的问题也发生在 mybutton 上,而不仅仅是子视图。例如按钮标题也有阴影。我制作了一个示例屏幕截图以更好地解释我的问题:http: //img46.imageshack.us/img46/8923/havq.png

如何在 iOS 中处理它?是我将按钮添加到的某种另一层吗?感谢您的建议和帮助!

4

1 回答 1

1

问题不在于您对图层的所有更改,而只是阴影。那是因为阴影被应用到图层合成的 Alpha 通道,并且包括它的子图层。

您可以:

  1. 使用阴影路径而不是标准偏移
  2. 添加一个不同的子层来指定阴影(它是按钮的兄弟)
于 2013-07-02T19:35:21.550 回答