当前位置: 首页 > news >正文

iPhone上画圆角矩形的方法

如何画圆角矩形呢? 这里有一个共通函数。
-(void) addRoundedRectToPath : (CGContextRef) context : (CGRect) rect : (float) ovalWidth : (float) ovalHeight{
 float fw, fh;
 if (ovalWidth == 0 || ovalHeight == 0) { // 1
 CGContextAddRect(context, rect);
 return;
 }
 CGContextSaveGState(context);
 CGContextTranslateCTM (context, CGRectGetMinX(rect),CGRectGetMinY(rect));
 CGContextScaleCTM (context, ovalWidth, ovalHeight);
 fw = CGRectGetWidth (rect) / ovalWidth;
 fh = CGRectGetHeight (rect) / ovalHeight;
 CGContextMoveToPoint(context, fw, fh/2);
 CGContextAddArcToPoint(context, fw, fh, fw/2, fh, 1);
 CGContextAddArcToPoint(context, 0, fh, 0, fh/2, 1);
 CGContextAddArcToPoint(context, 0, 0, fw/2, 0, 1);
 CGContextAddArcToPoint(context, fw, 0, fw, fh/2, 1);
 CGContextClosePath(context);
 CGContextRestoreGState(context);
 }
这个方法是添加一个圆角矩形到Path中,接下来,你是想填充,还是描边都任你处置了。 下面是调用这个方法填充圆角矩形的一个例子
-(void)drawRect:(CGRect)rect
 {
 CGContextRef context = UIGraphicsGetCurrentContext();
 //设置红色画笔
 CGContextSetFillColorWithColor(context, [[UIColor redColor] CGColor]);
 //画圆角矩形背景 圆角的弧度半径为2
 [self addRoundedRectToPath:context :workRect :2 :2];
 //填充圆角矩形区域
 CGContextFillPath(context);
 }
其中CGContextSaveGState 函数的用法请参考: CGContextSaveGState与CGContextRestoreGState的作用  

转载于:https://www.cnblogs.com/liuxingzi/archive/2013/04/08/3404333.html

相关文章:

  • CPP 插入排序
  • Android 获取网页内容
  • 系统子模块_短信命令语法设计
  • 高效能人士的七个习惯(部分)
  • 以XML为中间文档格式的Excel电子表格向SVG图转换
  • Visifire for Windows 8 v2.1.1.0 发布
  • JNDI 学习(转)
  • 不可不知的移动色彩设计新趋势
  • Nosql入门知识(转)
  • linux 下oracle提示:the account is locked
  • CentOS中无法使用setup命令 -bash:setup: command not found
  • java InputStream读取数据问题
  • CITRIX 官方说明文档xenserver
  • 解决 KindEditor SWFUpload 批量上传检测用户登录状态的问题
  • mvc原理和mvc模式的优缺点
  • ECS应用管理最佳实践
  • extract-text-webpack-plugin用法
  • gcc介绍及安装
  • java2019面试题北京
  • js操作时间(持续更新)
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • JS实现简单的MVC模式开发小游戏
  • Spring Boot快速入门(一):Hello Spring Boot
  • vagrant 添加本地 box 安装 laravel homestead
  • 初识MongoDB分片
  • 二维平面内的碰撞检测【一】
  • 关于使用markdown的方法(引自CSDN教程)
  • 前端性能优化--懒加载和预加载
  • 浅谈Golang中select的用法
  • 如何在 Tornado 中实现 Middleware
  • 深入浅出webpack学习(1)--核心概念
  • 线性表及其算法(java实现)
  • 一个完整Java Web项目背后的密码
  • 用Python写一份独特的元宵节祝福
  • 阿里云移动端播放器高级功能介绍
  • ​马来语翻译中文去哪比较好?
  • #HarmonyOS:Web组件的使用
  • $.ajax中的eval及dataType
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • $forceUpdate()函数
  • (二)fiber的基本认识
  • (附源码)计算机毕业设计ssm电影分享网站
  • (六)Hibernate的二级缓存
  • (转)一些感悟
  • .chm格式文件如何阅读
  • .net 7 上传文件踩坑
  • .Net Core 中间件验签
  • .net 按比例显示图片的缩略图
  • .net流程开发平台的一些难点(1)
  • .NET学习全景图
  • .Net语言中的StringBuilder:入门到精通
  • .py文件应该怎样打开?
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @selector(..)警告提示
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)