• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

swift-画图-画矩形,虚线,圆和半圆

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

 

 

 

 

import UIKit

class JYJYBouncedCouponsViewCellBgView: UIView {

    //一定要在这里设置 背景色, 不要再draw里面设置, 
    override init(frame: CGRect) {
        super.init(frame: frame)
        self.backgroundColor = UIColor.clear
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override func draw(_ rect: CGRect) {
        // 获取上下文
        guard let context = UIGraphicsGetCurrentContext() else {
            return
        }
        
        //画一个矩形, 带圆角的,填充色为FFE4C3,切圆角5
        UIColor.init(hexColor: "FFE4C3").set()
        context.addPath(UIBezierPath(roundedRect: rect, cornerRadius: 5).cgPath)
        context.fillPath()
        //填充色setFillColor , 画线的颜色setStrokeColor
//        context.setFillColor(UIColor.init(hexColor: "FFE4C3").cgColor)
        
        // 画虚线
        /**设置起始和结束位置**/
        let startPointX: CGFloat = rect.size.width - 97
        let staerPointY: CGFloat = 0
        let endPointX: CGFloat = rect.size.width - 97
        let endPointY: CGFloat =  rect.size.height
        let path = CGMutablePath()
        path.move(to: CGPoint(x: startPointX, y: staerPointY))
        path.addLine(to: CGPoint(x: endPointX, y: endPointY))
        context.addPath(path)
        
        context.setStrokeColor(UIColor.init(hexColor: "FF8E00").cgColor)
        context.setLineWidth(1)
        /*
         phase参数表示在第一个虚线绘制的时候跳过多少个点
         lengths的值{10,10}表示先绘制10个点,再跳过10个点,如此反复
         如果把lengths值改为{10, 20, 10},则表示先绘制10个点,跳过20个点,绘制10个点,跳过10个点,再绘制20个点,如此反复
         */
        context.setLineDash(phase: 0, lengths: [5,5])
        context.strokePath()
        
        // 画半圆
        UIColor.clear.set()
        /***设置圆心位置***/
        let circleY: CGFloat =  0
        let topCirclePoint: CGPoint = CGPoint(x: rect.size.width - 97, y: circleY)
        let bottomCenterPoint: CGPoint = CGPoint(x: rect.size.width - 97, y: rect.size.height)
        let topCircle = UIBezierPath(arcCenter: topCirclePoint, radius: 5, startAngle: -CGFloat.pi, endAngle: CGFloat.pi, clockwise: true)
        let bottpmCircle = UIBezierPath(arcCenter: bottomCenterPoint, radius: 5, startAngle: -CGFloat.pi, endAngle: CGFloat.pi, clockwise: true)
        context.setBlendMode(.clear)
        context.addPath(topCircle.cgPath)
        context.addPath(bottpmCircle.cgPath)
        context.fillPath()
    }

}

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
oc及swift之mac中NSPopUpButton发布时间:2022-07-13
下一篇:
swift3.0:associatedtype发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap