【发布时间】:2017-09-28 22:08:23
【问题描述】:
我有两个 UIView 在重叠时会创建一个独特的形状,我想在组合视图周围绘制一个边框。
这样做的正确方法是什么?
UIView 是:
- 用于显示用户个人资料图像的圆形图像视图
- 将包含用户配置文件数据(即姓名、出生日期等)的矩形视图
【问题讨论】:
我有两个 UIView 在重叠时会创建一个独特的形状,我想在组合视图周围绘制一个边框。
这样做的正确方法是什么?
UIView 是:
【问题讨论】:
好的,通过以下操作弄清楚了:
用UIBezierPath创建一个CAShapeLayer来绘制一个半圆,并在drawRect方法中将它添加到圆UIView's图层中:
覆盖 func draw(_ rect: CGRect) { super.draw(矩形)
let shapeLayer = CAShapeLayer()
let topSemiCirclePath = UIBezierPath(arcCenter: userImageView.center, radius: userImageView.bounds.size.width / 2.0, startAngle: CGFloat(Double.pi), endAngle: CGFloat(Double.pi / 180), clockwise: true)
topSemiCirclePath.lineWidth = 2.0
UIColor.lightGray.setStroke()
topSemiCirclePath.stroke()
shapeLayer.path = topSemiCirclePath.cgPath
userImageView.layer.addSublayer(shapeLayer)
}
【讨论】: