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 - 画图 - 画矩形,虚线,圆和半圆的更多相关文章

  1. CSS画矩形、圆、半圆、弧形、半圆、小三角、疑问框

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. 【CSS】CSS画矩形、圆、半圆、弧形、半圆、小三角、疑问框

    在网页中,常常会用到各种Icon,假设老是麻烦设计狮画出来不免有些不好意思,所以有时候我们也能够用CSS写出各种简单的形状.一来能够减轻他们的负担,二来也能够使用CSS替代图片.提高载入速度. 在网页 ...

  3. swift 画图 Charts的基本使用

    下面的这些代码呢是在oc工程里里使用的 其实和在swift中使用没什么大的差别 属性都一样的 //创建饼状图    self.pieChartView = [[PieChartView alloc] ...

  4. PS如何绘制虚线圆

    1 绘制一个圆的路径   2 选择铅笔工具,然后点击"画笔笔尖形状",选好笔尖的直径和间距(不同的直径对应不同的间距,没有标准数值,自己推拉滑动条就可以了)   3 在路径选项卡, ...

  5. android 画虚线,虚线圆

    Paint paint = new Paint(); paint.setAntiAlias(true); paint.setStyle(Paint.Style.STROKE);   paint.set ...

  6. swift - 画图截取图片 - 保存相册

    1.图片截取 func test(addView:UIView) -> UIImage?{ UIGraphicsBeginImageContextWithOptions(CGSize(width ...

  7. css3实现半圆和圆效果

    在css2中,如果需要失效一些圆角或者半圆等等效果,一般是要通过ps等软件来处理的,在CSS3中,则不需要了,只需要通过border-radius就可以实现,大大方便了开发的效率. 无论圆角.圆弧.实 ...

  8. Div+Css制作圆

    Div+Css制作四分之一圆主要是使用Css3.0中的border-radius这个圆角隐藏属性.利用这一属性,我们可以画圆,画半圆,四分之三圆,四分之一圆等.以后我会更新…… 如何使用border- ...

  9. MFC简易画图

    开发一个MFC绘图程序,基于"文档-视图"结构,在客户区能够完成: ①画直线 ②画矩形 ③画圆(椭圆) ④画任意折线(右键结束) ⑤画任意多边形(右键结束,并形成闭环) 注:图形中 ...

随机推荐

  1. JVM内部细节之三:字符串及字符串常量池

    本人最近正在面试,然后注意到总是有公司喜欢考String的问题,如字符串连接有几种方式,它们之间有什么不同等问题:要不就是给一段代码问创建了几个对象.那么该不该问呢?我认为当面试有一定工作经验的求职者 ...

  2. ETL编程模型(场景)

    使用场景: ETL是一个处理过程. 多个数据源之间进行数据同步 1:n:一对多同步数据 n:1:多个数据源到一个目的段 m;n:多个数据源多个目的段 ========================= ...

  3. php中的释放语句unset和释放函数mysql_free_result()

    首先要强调的一点是unset在php中已经不再是一个函数了,既然不是函数,那么就没有了返回值,所以用的时候不能够用unset的返回值来做判断. 其次,在函数中,unset只能销毁局部变量,并不能销毁全 ...

  4. Win7关机时弹出对话框,提示你想要的信息

    博主换了个公司,要求每天写日志,次日8点前没写的话就要扣钱,1篇10块钱,博主已经两次写完忘记提交到ERP系统了,捂脸... 因为公司要求所有工作在公司配的台式电脑上,所以如果能在关机前弹个提示(不关 ...

  5. python3调用C动态库

    软硬件环境 OS X EI Capitan Python 3.5.1 GCC 4.9 前言 最近在做python3开发中,碰到了一个问题,需要通过调用C的一个动态链接库来获取相应的值.扒了扒网络,动手 ...

  6. 网络命令ping/netstat/ipconfig/arp/tracert/nbstat

    1.1 Ping命令的使用 ping检测网络故障步骤: ping 127.0.0.1 ping环绕指针检测是否在计算上anzhaung了TCP/IP协议及配置是否正确 ping本机IP这个命令被被送到 ...

  7. 位运算骚操作 Part 2

    ▶ 计算 unsigned int v 的以 2 为底的对数,结果放入 unsigned int r . // 方法零 #pragma unroll ;v; r++, v >>= ); / ...

  8. JPA注解@SecondaryTables 实现一个实体映射多张数据库表

    参考:http://jingpin.jikexueyuan.com/article/46978.html Annotation Type SecondaryTables(参考:https://docs ...

  9. 基于OpenGL编写一个简易的2D渲染框架-13 使用例子

    这是重构渲染器的最后一部分了,将会给出一个 demo,测试模板测试.裁剪测试.半透明排序等等: 上图是本次 demo 的效果图,中间的绿色图形展现的是模板测试. 模板测试 void init(Pass ...

  10. Cookie的过期时间设置

    https://pan.baidu.com/s/1ibUQhLt6ZgVyhVM6mnrtHg 密码:9psc