swift画圆角对话框

本文介绍如何使用Swift编程语言实现类似安卓.9.png效果的圆角对话框,包括步骤:1.绘制圆角矩形;2.画出指向下方的三角形;3.进行描边,并避免在三角形区域内出错,最终实现居中悬浮的文本显示。

这里的圆角的对话框 我指的是类似安卓的.9.png那样的圆角的对话框,就是这个样子的。


分解出来就是一个实心的圆角矩形加一个三角形,外面用直线描边,里面写一些居中悬浮的字符串而已。

1.画圆角矩形  假设x1,y1为右下角的点

let rx:CGFloat =4      //圆角弧度
CGContextSetFillColorWithColor(context, UIColor(red: 248/255, green:248/255, blue:248/255, alpha:1).CGColor)//设置画笔颜色
CGContextMoveToPoint(context, x1, y1 - rx);                         // 右下角
CGContextAddArcToPoint(context, x1, y1, x2, y1, rx);               // 右下角度-左下角
CGContextAddArcToPoint(context, x2, y1, x2, y2, rx);               // 左下角-左上角
CGContextAddArcToPoint(context, x2, y2, x1, y2, rx);                //左上角-右上角
CGContextAddArcToPoint(context, x1, y2, x1, y1, rx);                //右上角-右下脚
CGContextClosePath(context);//封起来
CGContextDrawPath(context, CGPathDrawingMode.Fill)   //根据坐标绘制路径

2.画三角形

取圆角矩形的底边上某个点(xs,y1),这里随便举个栗子啦   这里x2<xs<x1

let sPoint = [CGPointMake(xs, y1),CGPointMake(xs + 10, y1),CGPointMake(xs + 5, y1+5)];
CGContextAddLines(context, sPoints5, 3);//添加线
CGContextClosePath(context);//封起来
CGContextDrawPath(context, CGPathDrawingMode.Fill)//根据坐标绘制路径

这样基本轮廓就出来啦,一个尖尖向下的对话框


3.描边

就是画线咯,注意在三角形区域不要画错喔

CGContextSetLineWidth(context, 0.5)//设置画笔宽度
CGContextSetStrokeColorWithColor(context, UIColor(red: 204/255, green:204/255, blue:204/255, alpha:1).CGColor)//设置画笔颜色
CGContextMoveToPoint(context, x1, y1);           //起点
CGContextAddLineToPoint(context, xs+10, y1);
CGContextAddLineToPoint(context, xs+5, y1+5);   //斜边1
CGContextAddLineToPoint(context, xs, y1);        //斜边2
CGContextAddLineToPoint(context, x2, y1);
CGContextAddLineToPoint(context, x2, y2);
CGContextAddLineToPoint(context, x1, y2);
CGContextAddLineToPoint(context, x1, y1);
CGContextStrokePath(context) //关闭路径

写到这里,萌萌哒圆角对话框就写好咯,加下来在里面挖坑写字符串就可以了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值