一般使用UIKit给我们提供的绘图来绘制一些文字,图片这些东西.

    UIKit给我们提供画图的方法底层也是分为四步.所以也必须在drawRect方法当中去写.

    1.如何画文字?

        先创建好要画的文字

        使用UIKit提供的方法进行绘制.

        方法说明:

        drawAtPoint:要画到哪个位置

        withAttributes:文本的样式.

        [str drawAtPoint:CGPointZero withAttributes:nil];

        

    2.如何添加绘制文字属性?

        通过绘制方法的最后一个属性withAttributes来设置文字属性.

        它要求传入的是一个字典.它是通过字典的key和Value的形式来设置文字样式. 

        那传什么key,什么值我们可以在UIKit头文件当中的NSAttributedString类当中去找.

        使用形式如下:

        

         创建一个可变的字典,设置key,value

         NSMutableDictionary *dict = [NSMutableDictionary dictionary];

         字体

         dict[NSFontAttributeName] = [UIFont systemFontOfSize:50];

         颜色

         dict[NSForegroundColorAttributeName] = [UIColor redColor];

         设置边框颜色

         dict[NSStrokeColorAttributeName] = [UIColor redColor];

         dict[NSStrokeWidthAttributeName] = @1;

         阴影

         NSShadow *shadow = [[NSShadow alloc] init];

         shadow.shadowOffset = CGSizeMake(10, 10);

         shadow.shadowColor = [UIColor greenColor];

         shadow.shadowBlurRadius = 3;

         dict[NSShadowAttributeName] = shadow;

    

     3.drawAtPoint:和drawInRect:的区别?

          drawAtPoint:不能够自动换行

          drawInRect:能够自动换行

          

     4.如果绘制图片?

         绘制图片同样开始要先把图片素材导入.

         AtPoint:参数说明图片要绘制到哪个位置.

         通过调用UIKit的方法drawAtPoint:CGPointZero方法进行绘制;

         

     5.在绘制图片过程当中.drawAtPoint:和drawInRect:两个方法的区别?

         drawAtPoint:绘制出来的图图片跟图片的实际尺寸一样大

         drawInRect:使用这个方法绘制出来的图片尺寸会和传入的rect区域一样大.

     

     6.如果进行平铺图片?

         [image drawAsPatternInRect:rect];

     

     7.如何选用UIKit提供的方法快速画一个矩形?

        快速的用矩形去填充一个区域

         UIRectFill(rect);

         

     8.如何利用UIKit裁剪一个区域?

       UIRectClip(CGRectMake(0, 0, 50, 50));

       这个方法必须要设置好裁剪区域,才能有裁剪

UIKit绘图演练的更多相关文章

  1. iOS开发之Quartz2D 五:UIKIT 绘图演练,画文字,画图片

    #import "DrawView.h" @implementation DrawView -(void)awakeFromNib { // //画图片 // UIImage *i ...

  2. 05-UIKit绘图演练

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  3. iOS开发——UI进阶篇(十六)Quartz2D实战小例子

    一.画线 只有在drawRect中才能获取到跟view相关联的上下文 - (void)drawRect:(CGRect)rect {} 一条线 // 1.获取跟当前View相关联的layer上下文(画 ...

  4. iOS绘图系统UIKit与Core Graphics

    概述 iOS主要的绘图系统有UIKit,Core Graphics,Core Animation,Core Image,Open GL等,本片博文主要介绍UIKit与Core Graphics的绘图系 ...

  5. CALayer---iOS-Apple苹果官方文档翻译之CALayer

    CHENYILONG Blog CALayer---iOS-Apple苹果官方文档翻译之CALayer CALayer /*技术博客http://www.cnblogs.com/ChenYilong/ ...

  6. CoreText 使用教程

    [iOS开发] CoreText 使用教程:以创建一个简单的杂志应用为例抢沙发 分类:iPhone开发 标签:CoreText.iOS.iOS开发.iOS开发教程.杂志应用 BBS.CHINAAPP. ...

  7. iOS图像处理之Core Graphics和OpenGL ES初见

    http://www.jianshu.com/p/f66a7ca326dd iOS支持两套图形API族:Core Graphics/QuartZ 2D 和OpenGL ES.OpenGL ES是跨平台 ...

  8. View Programming Guide for iOS ---- iOS 视图编程指南(四)---Views

    Views Because view objects are the main way your application interacts with the user, they have many ...

  9. 转-CoreText 使用教程

    转自:http://www.dapps.net/dev/iphone/how-to-create-a-simple-magazine-app-with-core-text.html Core Text ...

随机推荐

  1. 适用于 Flutter 的 Google 移动广告 SDK 正式版现已发布

    作者 / Zoey Fan,Flutter 产品经理 应用变现有多种方法: 通过实体企业的店面接受付款.提供订阅或应用内购买,或者直接在应用中投放广告.经过六个月的 beta 测试期,我们很高兴能够推 ...

  2. 基于Spring MVC + Spring + MyBatis的【野生动物保护系统】

    资源下载:https://download.csdn.net/download/weixin_44893902/45603787 练习点设计: 模糊查询.删除.新增.修改 一.语言和环境 实现语言:J ...

  3. 编写Java程序,将JButton按钮按网格布局管理器格式放置

    返回本章节 返回作业目录 需求说明: 将JButton按钮按网格布局管理器格式放置 实现思路: 实现代码: public void init(){ setLayout(new GridLayout(4 ...

  4. kubernetes部署第一个应用案例

    对比有无-o wide参数的区别 kubectl get pod --all-namespaceskubectl get pod --all-namespaces -o wide如下,查看所有Pod信 ...

  5. 【JPA】使用JPA实现分页和模糊查询

    1.首先创建DAO层接口,实现JpaRepository和JpaSpecificationExecutor两个接口 JpaRepository<Admin, Integer> 泛型参数分别 ...

  6. Oracle导出导入dmp文件(exp.imp命令行)

    1.说明 使用Oracle命令行导出导入dmp文件, 从而在两个数据库之间快速转移数据, 也可以用来作为数据库的备份, 将来可以快速恢复数据. 命令:导出exp.导入imp 步骤: 使用Oracle的 ...

  7. 【工控老马】OPC通讯协议解析-OPC七问

    1 通讯步骤 1.1 第一问 OPC Client和OPC Server之间通讯谁是主动的? 答:当然是OPC Client. 1.2 第二问 OPC Client第一次动作做了什么? 答:从大多数O ...

  8. [Azure DevOps] 管理测试计划、测试套件和测试用例

    我喜欢测试计划,它能让团队清楚测试进度,还能妥善分配测试人员,更重要的是它能保证测试质量和效率.Azure DevOps 里提供了 Test Plans 这个模块用于管理测试计划. 1. Azure ...

  9. RazorEngine.NetCore 相见恨晚,它让我彻底放弃了T4模板

    在dbfrist 时代,用T4模板生成代码,貌似还没有感觉到别扭.但是到了codefrist 后,我想要实体生成生成备注,我就得想方设法的去把备注弄到数据库,然后 还要处理模型中类型像枚举这种属性,渐 ...

  10. Oracle打怪升级之路二【视图、序列、游标、索引、存储过程、触发器】

    前言 在之前 <Oracle打怪升级之路一>中我们主要介绍了Oracle的基础和Oracle常用查询及函数,这篇文章作为补充,主要介绍Oracle的对象,视图.序列.同义词.索引等,以及P ...