zoukankan      html  css  js  c++  java
  • AJ学IOS(30)UI之Quartz2D画图片画文字

    回头看了看自己写的博客,AJ决定以后更改风格
    本意是想大家看效果直接拷贝代码能用,注释齐全也方便学习,但是发现这样对新手学习特别困难
    以后风格基本是–>看标题–>看目录–>看图片–>看代码–>自己尝试。

    当然,如果有好的给力Demo AJ还是会原来那样放上来的。

    AJ分享,必须精品

    画文字

    效果:
    这里写图片描述

    代码:

    //
    //
    //  Created by apple on 15-5-5.
    //  Copyright (c) 2015年 znycat. All rights reserved.
    //
    
    #import "NYTextView.h"
    
    @implementation NYTextView
    
    - (id)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self) {
            // Initialization code
        }
        return self;
    }
    
    - (void)drawRect:(CGRect)rect
    {
    
        // 画文字
        NSString *str = @"猫猫喵呜,!猫猫喵呜,!猫猫喵呜,!猫猫喵呜,!";
    
        // 1.获取上下文
        //    CGContextRef ctx = UIGraphicsGetCurrentContext();
        // 2.绘图
        // 不推荐使用C语言的方法绘制文字, 因为quraz2d中的坐标系和UIkit中的坐标系不一致, 绘制出来的文字是颠倒的, 而且通过C语言的方法绘制文字相当麻烦
        //    CGContextSelectFont(<#CGContextRef c#>, <#const char *name#>, <#CGFloat size#>, <#CGTextEncoding textEncoding#>)
        //    CGContextShowText(ctx, <#const char *string#>, <#size_t length#>)
    
        // 绘制矩形
        // 1.获取上下文
        CGContextRef ctx = UIGraphicsGetCurrentContext();
        // 2.绘图
        CGContextAddRect(ctx, CGRectMake(10, 10, 80, 80));
        // 3.渲染
        CGContextStrokePath(ctx);
    
    
        //    NSMutableDictionary *md = [NSMutableDictionary dictionary];
        //    // 设置文字颜色
        //    md[NSForegroundColorAttributeName] =[UIColor redColor];
        //    // 设置文字背景颜色
        //    md[NSBackgroundColorAttributeName] = [UIColor greenColor];
        //    // 设置文字大小
        //    md[NSFontAttributeName] = [UIFont systemFontOfSize:20];
    
        //    将文字绘制到指点的位置
        //    [str drawAtPoint:CGPointMake(10, 10) withAttributes:md];
    
        //    将文字绘制到指定的范围内, 如果一行装不下会自动换行, 当文字超出范围后就不显示
        [str drawInRect:CGRectMake(20, 20, 80, 80) withAttributes:nil];
    }
    
    
    @end
    
    

    画图片

    平铺图片

    这里写图片描述

    //
    //  NYImageView.m
    //  画图片画文字
    //
    //  Created by apple on 15-5-5.
    //  Copyright (c) 2015年 znycat. All rights reserved.
    //
    
    #import "NYImageView.h"
    
    @implementation NYImageView
    
    - (id)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self) {
            // Initialization code
        }
        return self;
    }
    
    
    
    - (void)drawRect:(CGRect)rect
    {
    
        //    1.加载图片到内存中
        UIImage *image = [UIImage imageNamed:@"cat"];
    
    
        // 利用drawAsPatternInRec方法绘制图片到layer, 是通过平铺原有图片
        [image drawAsPatternInRect:CGRectMake(0, 0, 320, 480)];
    }
    
    
    @end
    

    拉伸图片

    效果:
    这里写图片描述

    代码:

    //
    //  NYImageView.m
    //  画图片画文字
    //
    //  Created by apple on 15-5-5.
    //  Copyright (c) 2015年 znycat. All rights reserved.
    //
    
    #import "NYImageView.h"
    
    @implementation NYImageView
    
    - (id)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self) {
            // Initialization code
        }
        return self;
    }
    
    
    
    - (void)drawRect:(CGRect)rect
    {
    
        //    1.加载图片到内存中
        UIImage *image = [UIImage imageNamed:@"cat"];
    
    
        // 利用OC方法将图片绘制到layer上
    
        // 利用drawInRect方法绘制图片到layer, 是通过拉伸原有图片
        [image drawInRect:CGRectMake(0, 0, 260, 260)];
    
    
    }
    
    
    @end
    

    图片固定位置

    效果:
    这里写图片描述

    代码:

    //
    //  NYImageView.m
    //  画图片画文字
    //
    //  Created by apple on 15-5-5.
    //  Copyright (c) 2015年 znycat. All rights reserved.
    //
    
    #import "NYImageView.h"
    
    @implementation NYImageView
    
    - (id)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self) {
            // Initialization code
        }
        return self;
    }
    
    
    
    - (void)drawRect:(CGRect)rect
    {
    
        //    1.加载图片到内存中
        UIImage *image = [UIImage imageNamed:@"cat"];
    
    
        // 利用OC方法将图片绘制到layer上
    
        // 将图片绘制到指定的位置
        [image drawAtPoint:CGPointMake(100, 100)];
    }
    
    @end
    
  • 相关阅读:
    MVC模式-----struts2框架(2)
    MVC模式-----struts2框架
    html的<h>标签
    jsp脚本元素
    LeetCode "Paint House"
    LeetCode "Longest Substring with At Most Two Distinct Characters"
    LeetCode "Graph Valid Tree"
    LeetCode "Shortest Word Distance"
    LeetCode "Verify Preorder Sequence in Binary Search Tree"
    LeetCode "Binary Tree Upside Down"
  • 原文地址:https://www.cnblogs.com/luolianxi/p/4990343.html
Copyright © 2011-2022 走看看