大佬教程收集整理的这篇文章主要介绍了需要为 UIView Swift 创建自定义形状,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要为我的项目创建这个自定义 UIVIEw。I need to achieve this
我通过创建自己的自定义 UIVIEw 然后在其上绘图来进行反复试验。 I'm working on this
我的问题是,如果我能够绘制自定义形状,我将如何剪掉 UIVIEw 的剩余空白
func drawCustomShape() {
let vIEwSize = self.frame.size
let buttonSloTradius = CGfloat(30)
let effectiveVIEwHeight = vIEwSize.height - buttonSloTradius
let path = UIBezIErPath()
path.move(to: CGPoint(x: 30,y: 0))
path.addline(to: CGPoint(x: vIEwSize.wIDth - 30,y: 0))
path.addArc(withCenter: CGPoint(x: vIEwSize.wIDth - 30,y: 30),radius: 30,startAngle: .pi * 3 / 2,endAngle: 0,clockwise: truE)
path.addline(to: CGPoint(x: vIEwSize.wIDth,y: effectiveVIEwHeight))
path.addArc(withCenter: CGPoint(x: vIEwSize.wIDth - 30,y: effectiveVIEwHeight - 30),startAngle: 0,endAngle: .pi / 2,clockwise: truE)
path.addline(to: CGPoint(x: vIEwSize.wIDth / 4,y: effectiveVIEwHeight))
// close path join to origin
path.close()
UIcolor.secondarySystemFill.setFill()
path.fill()
path.linewidth = 6.0
path.stroke()
}
您可以使用带有清晰背景颜色的 UIView,并使用带有所需路径的 CAShapeLayer,如下所示:
extension UIView {
func drawCustomShape() {
let cornerRadius: CGFloat = 18.0
let shapeOffset = self.frame.size.height * 0.2
//create shape layer
let shapeLayer = CAShapeLayer()
shapeLayer.frame = self.bounds
shapeLayer.lineWidth = 1.0
shapeLayer.fillColor = UIColor.white.cgColor
self.layer.addSublayer(shapeLayer)
//create path
let path = UIBezierPath()
//top left point
path.move(to: CGPoint(x: 0,y: cornerRadius))
//top left corner
path.addQuadCurve(to: CGPoint(x: cornerRadius,y: 0),controlPoint: CGPoint(x: 0,y: 0))
//top right point
path.addLine(to: CGPoint(x: self.frame.size.width - cornerRadius,y: 0))
//top right corner
path.addQuadCurve(to: CGPoint(x: self.frame.size.width,y: cornerRadius),controlPoint: CGPoint(x: self.frame.size.width,y: 0))
//bottom right point
path.addLine(to: CGPoint(x: self.frame.size.width,y: self.frame.size.height - shapeOffset - cornerRadius))
//bottom right corner
path.addQuadCurve(to: CGPoint(x: self.frame.size.width - cornerRadius,y: self.frame.size.height - shapeOffset),y: self.frame.size.height - shapeOffset))
//bottom left
path.addLine(to: CGPoint(x: cornerRadius,y: self.frame.size.height))
//bottom left corner
path.addQuadCurve(to: CGPoint(x: 0,y: self.frame.size.height - cornerRadius),y: self.frame.size.height))
path.close()
shapeLayer.path = path.cgPath
}
用法:
@H_349_9@myView.drawCustomShape()
结果:
以上是大佬教程为你收集整理的需要为 UIView Swift 创建自定义形状全部内容,希望文章能够帮你解决需要为 UIView Swift 创建自定义形状所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。