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

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()
    }
}
swift - 画图 - 画矩形,虚线,圆和半圆的更多相关文章
- CSS画矩形、圆、半圆、弧形、半圆、小三角、疑问框
		
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
 - 【CSS】CSS画矩形、圆、半圆、弧形、半圆、小三角、疑问框
		
在网页中,常常会用到各种Icon,假设老是麻烦设计狮画出来不免有些不好意思,所以有时候我们也能够用CSS写出各种简单的形状.一来能够减轻他们的负担,二来也能够使用CSS替代图片.提高载入速度. 在网页 ...
 - swift 画图 Charts的基本使用
		
下面的这些代码呢是在oc工程里里使用的 其实和在swift中使用没什么大的差别 属性都一样的 //创建饼状图 self.pieChartView = [[PieChartView alloc] ...
 - PS如何绘制虚线圆
		
1 绘制一个圆的路径 2 选择铅笔工具,然后点击"画笔笔尖形状",选好笔尖的直径和间距(不同的直径对应不同的间距,没有标准数值,自己推拉滑动条就可以了) 3 在路径选项卡, ...
 - android 画虚线,虚线圆
		
Paint paint = new Paint(); paint.setAntiAlias(true); paint.setStyle(Paint.Style.STROKE); paint.set ...
 - swift - 画图截取图片 - 保存相册
		
1.图片截取 func test(addView:UIView) -> UIImage?{ UIGraphicsBeginImageContextWithOptions(CGSize(width ...
 - css3实现半圆和圆效果
		
在css2中,如果需要失效一些圆角或者半圆等等效果,一般是要通过ps等软件来处理的,在CSS3中,则不需要了,只需要通过border-radius就可以实现,大大方便了开发的效率. 无论圆角.圆弧.实 ...
 - Div+Css制作圆
		
Div+Css制作四分之一圆主要是使用Css3.0中的border-radius这个圆角隐藏属性.利用这一属性,我们可以画圆,画半圆,四分之三圆,四分之一圆等.以后我会更新…… 如何使用border- ...
 - MFC简易画图
		
开发一个MFC绘图程序,基于"文档-视图"结构,在客户区能够完成: ①画直线 ②画矩形 ③画圆(椭圆) ④画任意折线(右键结束) ⑤画任意多边形(右键结束,并形成闭环) 注:图形中 ...
 
随机推荐
- .Net2.0部署在IIS8.5上的问题
			
 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理. 到"应用程序池"里找网站对应的应用程序池(右击网站-> 高级设置),双击程序池, 看程序池是否也网站的net ...
 - php使用ffmpeg向视频中添加文字字幕
			
这篇文章主要介绍了PHP使用ffmpeg给视频增加字幕显示的方法,实例分析了php操作ffmpeg给视频增加字母的技巧,具有一定参考借鉴价值,需要的朋友可以参考下. 本文实例讲述了PHP使用ffmpe ...
 - python判断变量是否为int、字符串、列表、元组、字典等方法
			
在实际写程序中,经常要对变量类型进行判断,除了用type(变量)这种方法外,还可以用isinstance方法判断: #!/usr/bin/env pythona = 1b = [1,2,3,4]c = ...
 - KVM虚拟机网络闪断分析
			
https://www.cnblogs.com/Bozh/p/5484838.html 背景 公司云平台的机器时常会发生网络闪断,通常在10s-100s之间. 异常情况 VM出现问题时,表现出来的情况 ...
 - Java网络编程详解
			
内容: 1.网络通信协议 2.UDP与TCP 3.UDP通信 4.TCP通信 5.网络编程总结 1.网络通信协议 (1)基本概念 网络:由多台计算机以及外部设备连接起来的一个系统,我们称之为网络 通信 ...
 - 0_Simple__simpleSurfaceWrite
			
使用表面写入函数,结合纹理引用实现图片的旋转▶ 源代码 #include <stdio.h> #include <windows.h> #include <cuda_ru ...
 - Latex 箭头、下标、符号上下写文字、正方形和三角形
			
0. hat $abc\hat def$ $ab\widehat{cde}f$ 1. 箭头上的文字 $\underrightarrow{\text{你的文字}}$ ($A \xlefta ...
 - ASP.NET CMS: Administration Template
			
ASP.NET CMS: Administration Template For many creating advanced ASP.NET website or application admin ...
 - MySQLNonTransientConnectionException
			
将mysql-connector-java和druid升级到最新版本: 将驱动设置为driver-class-name: com.mysql.cj.jdbc.Driver url要加上时区设置:url ...
 - Spring MVC 自定义类型转换器
			
新建一个自定义转换器 import org.springframework.core.convert.converter.Converter; import org.springframework.s ...