Iphone 对UIGraphicGetCurrentContext()感到困惑

Iphone 对UIGraphicGetCurrentContext()感到困惑,iphone,cgcontext,Iphone,Cgcontext,我正在做一些定制和面对 CGContextRef context = UIGraphicsGetCurrentContext(); 我的问题是:此上下文的默认大小是什么,以及如何定义此上下文的大小 编辑: 我之所以这么问,是因为我正在和 当我们有link1中的红色背景单元格和link2中的红色标题部分时,请查看上下文 然而,尽管它们是UIView的子类,但它们的宽度并不相同,我正在寻找原因……我不明白你的问题是什么,尤其是当Raywenderlich的教程非常清楚地说明了这一点时 CGCont

我正在做一些定制和面对

CGContextRef context = UIGraphicsGetCurrentContext();
我的问题是:此上下文的默认大小是什么,以及如何定义此上下文的大小

编辑:

我之所以这么问,是因为我正在和

当我们有
link1
中的红色背景单元格和
link2
中的红色标题部分时,请查看上下文


然而,尽管它们是
UIView
的子类,但它们的宽度并不相同,我正在寻找原因……

我不明白你的问题是什么,尤其是当Raywenderlich的教程非常清楚地说明了这一点时

CGContextRef context = UIGraphicsGetCurrentContext();
将为您提供当前的“画布”,然后您只需更改该画布的状态

CGContextRef context = UIGraphicsGetCurrentContext();

CGColorRef redColor = 
    [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0].CGColor;

CGContextSetFillColorWithColor(context, redColor);
CGContextFillRect(context, self.bounds);
大小由调用get context函数的位置定义,根据Apple docs,该函数在自定义drawRect方法中被调用:

默认情况下,当前图形上下文为零。在调用其 方法,视图对象将有效上下文推送到堆栈上, 让它成为最新的。如果您没有使用UIView对象执行 但是,必须将有效的上下文推送到堆栈上 手动使用UIGraphicsPushContext函数

因此,当传递self.bounds时,将使用调用此函数的元素的大小

甚至可以为不同大小的不同单元格调用此代码,因为每个单元格都将调用drawRect方法并获得相应的大小

也许你的困惑在于它们是UIView的子类,但这并不意味着它们拥有故事板中视图的“UIView”属性。这意味着它们是与uiview具有相同结构的元素(这就是它们可以调用drawRect的原因),但您将根据所需的行为进行扩展或自定义

刚刚注意到我今天早些时候回答了你的另一个问题哈哈