iOS绘图:图形上下文命令与技巧全解析
1. 自定义UIView黑色背景问题
在代码中创建具有 draw(_:)
实现的自定义 UIView
子类实例时,可能会发现视图背景为黑色,这常让初学者困惑。黑色背景通常在以下两种情况同时出现时产生:
- 视图的 backgroundColor
为 nil
。
- 视图的 isOpaque
为 true
。
当使用 init(frame:)
在代码中创建 UIView
时,默认这两个条件都满足。若想去除黑色背景,可重写 init(frame:)
方法,将 isOpaque
设为 false
,示例代码如下:
class MyView : UIView {
override init(frame: CGRect) {
super.init(frame:frame)
self.isOpaque = false
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
而通过nib创建的