美文网首页
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