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. tp5的RBAC插件及其使用很方便的管理用户登录及操作权限

    tp5-rbac 本扩展包是tp5的rbac包,使用了部分tp5的特性实现了关系型数据库中特殊数据结构的处理. 安装方法 先安装composer如果不知道怎么安装使用composer请自行百度. 打开 ...

  2. ZooKeeper系列(3)命令操作 (转)

    原文地址:http://www.cnblogs.com/wuxl360/p/5817524.html 一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他们大多 ...

  3. windows 下,查看并杀死进程

    今天启动我的play framework 服务 提示 could not bind on 9000.还是个error.这让我很不解,昨天还好好的. 怀疑是9000呗某个服务占了,在linux下还挺好办 ...

  4. http协议和https协议

    内容: 1.http协议介绍 2.https协议介绍 3.http协议和https协议对比 1.http协议介绍 (1)http协议是什么 1 一个传输协议,协议就是双方都遵守的规范. 2 为什么叫超 ...

  5. vb和c#插入行与删除行

    vb: xSheet.Range(, ).Insert(Shift:=Excel.XlDirection.xlDown) xSheet.Range(, ).Delete() xSheet.Range( ...

  6. 配置Ubuntu虚拟环境

    1.ubuntu默认root用户没有激活,激活root用户,就要为root用户创建密码 $sudo passwd root   2.修改主机名 $vi /etc/hostname   3.安装ssh服 ...

  7. windows10系统右键添加cmd命令

    https://blog.csdn.net/Mr_BEelzebub/article/details/78776104 首先,在桌面新建一个文本文档. Windows Registry Editor ...

  8. DevExpress ImageComboBoxEdit增加

    Combo_订单类型.Properties.Items.Clear() Select Case Combo_客户名称.EditValue Case "ABC" Combo_订单类型 ...

  9. ajax 遍历json一维数组

    $.each(data,function(index,value){}data必须是Object类型index是数组的下标value可以是一个对象 function myonclick() { var ...

  10. UI5-文档-4.26-(Optional) Remote OData Service

    到目前为止,我们已经使用了本地JSON数据,但是现在我们将访问一个真正的OData服务来可视化远程数据. 用可公开获得的Northwind OData服务显示并替换发票模型的JSONModel类型,以 ...