美文网首页
UIKit绘制

UIKit绘制

作者: wutich | 来源:发表于2017-07-05 14:24 被阅读0次

    UIKit是高级别的图形接口,它的API都是基于Objective-C的。它能够访问绘图、动画、字体、图片等内容。

    绘制视图

    1.视图绘制周期

        drawRect
            setNeedsDisplay
            setNeedsDisplayInRect
    
    

    触发视图重新绘制的动作有如下几种

    • 当遮挡你的视图的其他视图被移动或删除操作的时候
    • 将视图的hidden属性声明设置为No,使其从隐藏状态变为可见
    • 将视图滚出屏幕,然后再重新回到屏幕上
    • 显式调用视图的setNeedsDisplay或者setNeedsDisplayInRect:方法

    2.填充矩形

        //为当前的图形上下文设置要填充的颜色
        [[UIColor redColor] setFill];
        //填充矩形函数-按照方才设置的颜色进行填充矩形
        UIRectFill(rect);
    

    3.填充与描边

    UIKit提供非常基本的绘图功能,主要的API有

    • UIRectFill(CGRect rect),填充矩形函数
    • UIRectFrame(CGRect rect),矩形描边函数
    • UIBezierPath,绘制常见路径类,包括线段、弧线、矩形、圆角矩形和椭圆的方法。

    UIKit虽然提供了UIBezierPath等类,但是对于线段、渐变,阴影,反锯齿等高级特性支持还是不及Quartz 2D

        //设置描边颜色
        [[UIColor blackColor] setStroke];
        CGRect frame = CGRectMake(20, 30, 100, 300);
        //矩形描边函数
        UIRectFrame(frame);
    

    4.绘制图像和文本

    /*UIImage类中绘制图像主要的方法*/
    //-drawAtPoint:(CGPoint)point   设置绘制定点
    //-drawInRect:(CGRect)rect      图片绘制在指定的矩形里
    //-drawAsPatternInRect:(CGRect)rect     在指定的矩形里平铺绘制图片,如果图片大小超出了指定的矩形,形式上与-drawAtPoint:方法类似,如果图片大小小于指定的矩形,就会有平铺的效果
    - (void)drawImage
    {
        NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"photo" ofType:@"jpg"];
        UIImage *myImageObj = [[UIImage alloc] initWithContentsOfFile:imagePath];
        [myImageObj drawInRect:CGRectMake(0, 40, 320, 400)];
    }
    

    把图片放在矩形中显示,由于矩形高度比例与图片的原始比例不一样导致图片变形,这是使用drawInRect:方法进行绘制图片时需要注意的。

    /*NSString类中绘制文本主要的方法*/
    //-(void)drawAtPoint:(CGPoint)point withAttributes:(NSDictionary *)attrs    文本在指定点绘制
    //-(void)drawInRect:(CGRect) withAttributes:(NSDictionary *)attrs   文本在指定的矩形里绘制
    - (void)drawString
    {
        NSString *s = @"我的小马";
        UIFont *font = [UIFont systemFontOfSize:14.0];
        NSDictionary *attr = @{NSFontAttributeName:font};
        [s drawAtPoint:CGPointMake(100, 20) withAttributes:attr];
        
    }
    

    相关文章

      网友评论

          本文标题:UIKit绘制

          本文链接:https://www.haomeiwen.com/subject/qyhqhxtx.html