我正在做一些定制并面对
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 函数的任何位置定义,该函数在自定义 drawRect 方法中被调用:
当前图形上下文默认为 nil。在调用它的 drawRect: 方法之前,视图对象将一个有效的上下文压入堆栈,使其成为当前的。但是,如果您不使用 UIView 对象进行绘图,则必须使用 UIGraphicsPushContext 函数手动将有效上下文推送到堆栈上。
因此,当 self.bounds 被传递时,将使用调用此函数的元素的大小。
甚至可以为不同大小的不同单元格调用此代码,因为每个单元格都会调用 drawRect 方法并获得相应的大小。
也许您的困惑在于它们是 UIView 的子类,这并不意味着它们具有故事板视图中的“UIView”属性。这意味着它们是与 uiview 具有相同结构的元素(这就是它们可以调用 drawRect 的原因),但是您将针对所需的行为进行扩展或自定义。
PD:刚刚注意到我今天早些时候回答了你的另一个问题哈哈。