objective-c 有一些答案,但没有找到任何关于 swift 的答案。
我想创建一个中间带有透明圆圈的深色 View ,以便用户可以看到 subview 并与之交互。我如何使用 swift 实现它。
更准确地说,我正在寻找类似 whatsapp 个人资料图片实现的结果。中间有一个透明圆圈,用户可以看到图片并滚动。
谢谢大家的帮助!
最佳答案
Cyril 的回答被翻译成 swift 以防止额外打字:
func circularOverlayMask() -> UIImage {
let bounds = self.view.bounds
let width = bounds.size.width
let height = bounds.size.height
let diameter = width
let radius = diameter / 2
let center = CGPointMake(width / 2, height / 2)
// Create the image context
UIGraphicsBeginImageContextWithOptions(bounds.size, false, 0)
// Create the bezier paths
let clipPath = UIBezierPath(rect: bounds)
let maskPath = UIBezierPath(ovalInRect: CGRectMake(center.x - radius, center.y - radius, diameter, diameter))
clipPath.appendPath(maskPath)
clipPath.usesEvenOddFillRule = true
clipPath.addClip()
UIColor(white: 0, alpha: 0.5).setFill()
clipPath.fill()
let finalImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()
return finalImage
}
关于ios - swift : How to create a UIView with transparent circle in the middle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28723120/