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绘图程序,基于"文档-视图"结构,在客户区能够完成: ①画直线 ②画矩形 ③画圆(椭圆) ④画任意折线(右键结束) ⑤画任意多边形(右键结束,并形成闭环) 注:图形中 ...
随机推荐
- grep正则表达的零宽断言
先看一组神奇的命令 [root@elastix82 tmp]# echo $html111<td>aaa</td>222[root@elastix82 tmp]# [root@ ...
- Windows10右键添加“在此处打开命令窗口"
今天跑代码时用到了Powershell,有一个环境变量死活都找不到,无奈只好重新回到cmd命令行测试,结果立马就跑通了.-_-|| 由于现在Win10默认右键只有Powershell,所以为了以后方 ...
- selenium+python自动化87-Chrome浏览器静默模式启动(headless)
前言 selenium+phantomjs可以打开无界面的浏览器,实现静默模式启动浏览器完成自动化测试,这个模式是极好的,不需要占用电脑的屏幕. 但是呢,phantomjs这个坑还是比较多的,并且遇到 ...
- PHP获取照片exif信息
在这个没图说个屁的年代,照片还是很重要的.如果照片上传后会自动加上 照片相关信息,那用户体验的确会好很多,本着这个想法,今天尝试了下 PHP获取照片exif信息,重要的是 获取图片的GPS信息,如果再 ...
- 25. LiveBos调用class实例
var v= ABS_LOADBEAN('com.apex.mmsqljdbc.TestJDBC');var date=ABS_SQLVALUE("select to_char(?,'yyy ...
- menu 一组 只能选择一个
menu 一组 只能选择一个 将属性表的 groupindex 给一个值,假设你有三个Lang选项 就把这三个 manuitemex.groupindex 都设成同一个编号 (ex: 10) 以及把 ...
- ABAP-年月期间搜索帮助
selection-screen begin of block block1 with frame title text-. parameters:p_mon1 like s031-spmon, p_ ...
- ios 获得指定url的cookie
NSArray *myCookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage]cookiesForURL:[NSURL URLWithStrin ...
- visibility和display
visibility: hidden----将元素隐藏,但是在网页中该占的位置还是占着.display: none----将元素的显示设为无,即在网页中不占任何的位置.
- block元素和inline元素的特点
一.block元素的特点 1.处于常规流中时,如果width没有设置,会自动填充满父容器 2.可以设置height/width及margin/padding 3.处于常规流中时,布局在前后元素位置之间 ...