美文网首页iOS开发
在drawInContext调用UIKit中的一些绘图方法失败的

在drawInContext调用UIKit中的一些绘图方法失败的

作者: Calvin_Shen | 来源:发表于2018-05-11 14:32 被阅读60次

最近由于需要绘制界面的一些操作,用到了CALayer,需要自己去重绘layer。

- (void)drawInContext:(CGContextRef)ctx

需要自定义以上方法,这个方法告诉你当前的绘图上下文为ctx;
使用core graphics那套方法,绘制一直没有出过问题,就是类似于

CGContextAddLineToPoint(...)、CGContextStrokePath(ctx)

等等一系列的C函数。这些函数都可以在layer中成功绘制图形。
由于需要在layer上绘制一些文字。所以就需要用到UIKit中的一些绘图方法。比如:

- (void)drawAtPoint:(CGPoint)point withAttributes:(nullable NSDictionary<NSAttributedStringKey, id> *)attrs NS_AVAILABLE(10_0, 7_0);
- (void)drawInRect:(CGRect)rect withAttributes:(nullable NSDictionary<NSAttributedStringKey, id> *)attrs NS_AVAILABLE(10_0, 7_0);

在layer的重绘函数中调用这些方法,始终没有办法在layer上得到正确的显示。

使用UIKit中的绘图方法,如果不是在drawRect:方法中,你不指定当前上下文。是不知道往哪个ctx中画的。所以就用到下面两个函数

- (void)drawInContext:(CGContextRef)ctx
{
  UIGraphicsPushContext(ctx); //将当前上下文的context,压到栈顶
  NSString* stringNumber = @"hello world";
  [stringNumber drawAtPoint:CGPointMake(20, 22) withAttributes:@{NSFontAttributeName:  [UIFont systemFontOfSize:10.f],NSForegroundColorAttributeName:[UIColor blackColor]}];
UIGraphicsPopContext(); //绘图结束前pop出context
}

随手记一笔,希望帮到有同样困惑的同学~😆

相关文章

  • 在drawInContext调用UIKit中的一些绘图方法失败的

    最近由于需要绘制界面的一些操作,用到了CALayer,需要自己去重绘layer。 需要自定义以上方法,这个方法告诉...

  • IOS 学习之绘图( Core Graphics 教学)

    IOS 绘图 总结 Core Graphics IOS中绘图的三种方式 在UIKit控件中,的drawInReat...

  • 小程序分享

    canvas绘图 onShareAppMessage()方法1、在页面中调用wx.hideShareMenu()2...

  • iOS 贝塞尔路径

    UIBezierPath类属于UIKit框架,主要用于绘图中设置绘图的路径。在Core Graphics中,也提供...

  • iOS中几种绘图的方式

    第一种绘图形式:在UIView的子类方法drawRect:中绘制一个蓝色圆,使用UIKit在Cocoa为我们提供的...

  • iOS绘画的三种方式

    第一种绘图形式:在UIView的子类方法drawRect:中绘制一个蓝色圆,使用UIKit在Cocoa为我们提供的...

  • CoreGraphics画图

    在iOS上画图主要有3种方法: UIKit, 这是我们最常用的绘图方法,平时的UIButton、UIImageVi...

  • 裁剪图片

    iOS如何压缩 和裁剪图片? 在 uikit框架中的绘图方法可以方便的截图,改变尺寸,下面附上一个开发中常用的封装...

  • 菜鸟教程——iOS CoreGraphics绘制图像

    可参照之前的iOS UIKit绘图,只是使用CoreGraphics中方法绘制 1.- (void)drawRec...

  • 画图+截图+水印

    绘图需在- (void)drawRect:(CGRect)rect方法中实现 第一次显示和调用setNeedsDi...

网友评论

    本文标题:在drawInContext调用UIKit中的一些绘图方法失败的

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