所以现在我有一个UIView,里面有一个UILabel.我希望背景具有不透明度<1.0,标签的不透明度为1.0.但是,由于Alpha会沿着视图层次向下传播,因此标签会以不透明度结束<1.0版本.

有没有什么方法可以做我想做的,而不用把UILabel作为另一个视图的子视图??

推荐答案

只需将背景色设置为半透明:

view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5f];

或者,用Swift:

view.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.5)

或者,Swift 3:

view.backgroundColor = UIColor.black.withAlphaComponent(0.5)

请注意,在这个特定的例子中,UIColor(white: 0, alpha: 0.5)更简洁,但colorWithAlphaComponent通常适用.

Objective-c相关问答推荐

导航回上一个视图控制器

如何使用 NSFileManager 删除目录及其内容

ios 使用 AVFramework 捕获图像

NSError 和 __autoreleasing

UITableViewCell 突出显示时使标签的背景清晰

iOS 7 / Xcode 5:以编程方式访问设备启动图像

iOS 应用程序下一个键不会转到下一个文本字段

自动属性合成 (@property) 和继承

Objective-C:集合枚举块中的 continue继续?

如何在使用 React Native 时实现 SSL 证书固定

NSUserDefaults 的限制是什么?

你如何安排一个块在下一次运行循环迭代中运行?

在 Xcode 中打破 EXC_BAD_ACCESS?

Select 时如何更改 UITableViewCell 的 colored颜色 ?

从 NSString 中删除换行符

滑动删除单元格导致 tableView 标题随单元格移动

Objective-C 中的 NSString indexOf

我可以在 Objective-C switch 语句中声明变量吗?

UICollectionView 断言失败

在 Xcode 中制作 RGB colored颜色