首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS学习——Quartz2D学习之UIKit绘制

在绘制发生的时候如果使用的是系统提供的视图,绘制工作会自动得到处理。然而,如果是自定义视图,则必须重写drawRect:方法,在此提供相应的绘制代码。...setNeedsDisplay或者setNeedsDisplayInRect:方法 2、UIKit的基本绘图功能 UIKit提供非常基本的绘图功能,主要的API有:  - UIRectFill(CGRect...在前面我们学会了如何在自定义view中绘制文本信息,其实绘制图片的方法绘制文本的方法非常类似,所以基本步骤如下: 导入素材 在DrawRect加载图片  UIImage *image = [UIImage...drawInRect:(CGRect *)rect:在指定的rect区域内绘制整张图片,图片会按照指定区域的宽高进行缩放,所以这种方式一定可以显示完整的图片,但是会进行一些缩放。...drawAsPatternInRect:(CGRect *)rect:在指定的rect区域内平铺图片,如果一张图片不够用,则会在剩下的地方重新放置该图片,图片的大小尺寸不会改变。

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Swift-图像的性能优化

    , 0) // 2.绘图'drawInRect'就是在指定区域内拉伸屏幕 image.draw(in: rect) // 3.取得结果 let result...建立了一个空白文件HQImage,在UIImage的extension里面自定义了两个方法创建头像图像(hq_avatarImage)和创建矩形图像(hq_rectImage) // MARK: - 创建图像的自定义方法..., true, 0) // 2.绘图'drawInRect'就是在指定区域内拉伸屏幕 draw(in: rect) /...---- 2017年08月30日补充 感谢linbx08给我提出的问题,是一个关于矩形图像调用我的方法hq_rectImage图像右侧显示黑线的问题。 解决办法是在开启图形上下文后,对其做背景填充。...直接UIBezierPath(rect: rect)实例化了一个矩形的路径,然后在路径内绘图。但是突然想到不用裁切,不用设置圆形头像的边框,突然感觉这样就有点多此一举了,因此将多余的代码就都删除了。

    1.7K70

    谈谈对drawRect的理解

    重绘作用:重写该方法以实现自定义的绘制内容 drawRect调用场景 视图第一次显示的时候会调用。...这个是由系统自动调用的,主要是在UIViewController中loadView和viewDidLoad方法调用之后; 如果在UIView初始化时没有设置rect大小,将直接导致drawRect不被自动调用...不能为0; drawRect重绘方法定义 - (void)drawRect:(CGRect)rect;:重写此方法,执行重绘任务; - (void)setNeedsDisplay;:标记为需要重绘,...异步调用drawRect,但是绘制视图的动作需要等到下一个绘制周期执行,并非调用该方法立即执行; - (void)setNeedsDisplayInRect:(CGRect)rect;:标记为需要局部重绘...touchbegan等方法来掉用setNeedsDisplay实时刷新屏幕 ------这个阐述需要调整 UIImageView继承自UIView,但是UIImageView能不重写drawRect方法用于实现自定义绘图

    1.8K20

    UI进阶13 Quartz2DQuartz2D

    其实,iOS中大部分控件的内容都是通过Quartz2D画出来的 因此,Quartz2D在iOS开发中很重要的一个价值是:自定义view(自定义UI控件) 图形上下文 图形上下文(Graphics Context...首先,得有图形上下文,因为它能保存绘图信息,并且决定着绘制到什么地方去 其次,那个图形上下文必须跟view相关联,才能将内容绘制到view上面 自定义view的步骤 新建一个类,继承自UIView...实现- (void)drawRect:(CGRect)rect方法,然后在这个方法中 取得跟当前view相关联的图形上下文 绘制相应的图形内容 利用图形上下文将绘制的所有内容渲染显示到view上面...因为在drawRect:方法中才能取得跟view相关联的图形上下文 drawRect:方法在什么时候被调用?...rect) //添加一个椭圆 void CGContextAddEllipseInRect(CGContextRef context, CGRect rect) //添加一个圆弧 void CGContextAddArc

    69330

    绘图-Core Graphics

    简述 绘图的步骤:(在drawRect函数中) 1.获取绘图上下文 2.创建并设置路径 3.将路径添加到上下文 4.设置上下文状态 5.绘制路径 6.释放路径 在使用Core Graphics...记住在你所有的绘图操作后别忘了调用UIGraphicsEndImageContext函数关闭图形上下文。 第二种方法是利用cocoa为你生成的图形上下文。...当你子类化了一个UIView并实现了自己的drawRect:方法后,一旦drawRect:方法被调用,Cocoa就会为你创建一个图形上下文,此时你对图形上下文的所有绘图操作都会显示在UIView上。...CGPathApply 每个元素的图形路径中,调用一个自定义应用功能。 CGPathMoveToPoint 开始在一个可变的图形路径指定一个位置,一个新的子路径。...苹果官CGPath CGRectGet系列 CGRectInset(CGRect rect, CGFloat dx, CGFloat dy) dx,dy 是在rect的内部左右,上下距离的值。

    1.6K30

    【IOS开发基础系列】UIView专题

    - (CGRect)convertRect:(CGRect)rect fromView:(UIView*)view 参数 rect     一个在视图坐标系中的矩形 view     一个视图内部有矩形在他的坐标系中...)convertRect:(CGRect)rect toView:(UIView *)view 参数 rect     一个在接收者坐标系中的矩形 view     要转换过去的目标视图对象。...重写这个方法可以用来选择忽略一些他们不关心的对象 drawRect:     在接收者视图中绘制矩形 - (void)drawRect:(CGRect)rect 参数 rect     一个定义的需要绘制的矩形...当这个方法被调用,接收者可以假定他的帧在坐标上已经转换,边界矩形已经应用;所有他要做的就是绘制自定义的方法。...view中的rect - (CGRect)convertRect:(CGRect)rect toView:(UIView*)view; // 将rect从view中转换到当前视图中,返回在当前视图中的rect

    70530

    iOS开发——Core Graphics绘图

    我们在搭建UI界面时,有很多时候,我们会用到iOS自带的绘图功能来完成一些界面的效果,很常用也很方便。今天我们在这里就一起讨论一下iOS的绘图功能。...自定义绘图大部分是由UIKit或者Core Graphics来实现的。 由于像素是依赖于目标的,所以2D绘图并不能操作单独的像素,我们可以从上下文(Context)读取它。...绘图就好比在画布上拿着画笔机械的进行画画,通过制定不同的参数来进行不同的绘制。...context,这个context在重写uiview的drawRect的方法里调用UIGraphicsGetCurrentContext()获取 path:路径,ios绘图可以想象为你拿着一支笔去画图,...)rect方法 -(void)drawRect:(CGRect)rect{ [super drawRect:rect]; //获取ctx CGContextRef ctx =

    2.5K20

    Quartz2D实战-画板工具

    DrawRect: 首先我们需要知道,- (void)drawRect:(CGRect)rect方法是在什么时候调用: ?...我们发现该方法是在视图即将展示的时候调用的,在这个方法中可以获取到上下文,将试图绘制到View上,其实每一个View内部都有一个layer属性,这个方法中就可以了取得一个layer,所以我们绘制的东西其实是绘制到...)rect的调用时机: 当view第一次显示到屏幕上时(被加到UIWindow上显示出来) 调用view的setNeedsDisplay或者setNeedsDisplayInRect:时 图形上下文(Graphics...(输出目标可以是PDF文件、Bitmap或者显示器的窗口上) 相同的一套绘图序列,指定不同的Graphics Context,就可将相同的图像绘制到不同的目标上 绘制好的图形会保存到图像上下文中去,图像上下文中的绘制的图像又会显示在我们指定的输出目标当中...实现- (void)drawRect:(CGRect)rect方法 - (void)drawRect:(CGRect)rect { for (ZJBezierPath *path in

    44440

    ios 图像处理

    )rect; 通过一个指定的矩形中的椭圆形, 创建并且返回一个新的 UIBezierPath 对象 + (instancetype)bezierPathWithOvalInRect:(CGRect)rect...; 圆角矩形, 创建并且返回一个新的 UIBezierPath 对象 + (instancetype) bezierPathWithRoundedRect:(CGRect)rect cornerRadius...:(CGRect)rect byRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii; 通过一个圆弧, 创建并且返回一个新的...  * 如果当前路径是一条开放路径, 该方法将会隐式的将路径进行关闭后进行填充   * 该方法在进行填充操作之前, 会自动保存当前绘图的状态, 所以我们不需要   * 自己手动的去保存绘图状态了.  ...如果当前路径是一条开放路径, 该方法将   * 会隐式的将路径进行关闭后进行填充   * 该方法在进行填充操作之前, 会自动保存当前绘图的状态, 所以我们不需要   * 自己手动的去保存绘图状态了.

    1.6K30
    领券