我正在做一些自定义并面对
CGContextRef context = UIGraphicsGetCurrentContext();
我的问题:此上下文的默认大小是多少以及如何定义此上下文的大小。
编辑:
关注教程如果我们的背景单元格为link1
的红色,而标题部分为红色,则请查看上下文,link2
。
然而,即使它们是UIView
的子类,它们的宽度也不一样,我迷路了,找不到原因......
答案 0 :(得分:0)
我不明白你的问题是什么,特别是当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);
大小IS由你调用get上下文函数的地方定义,根据apple docs,在自定义drawRect方法中调用THAT函数:
默认情况下,当前图形上下文为零。在致电之前 drawRect:方法,视图对象将有效的上下文推送到堆栈上, 使它成为现实。如果你没有使用UIView对象来做你的 但是,必须将有效的上下文推送到堆栈中 手动使用UIGraphicsPushContext函数。
因此,当传递self.bounds时,将使用调用此函数的元素的大小。
甚至可以为不同大小的不同单元格调用此代码,因为每个单元格都会调用drawRect方法并获得相应的大小。
也许你的困惑在于它们是UIView的子类,并不意味着它们在故事板中的视图中具有“UIView”属性。这意味着它们是与uiview具有相同结构的元素(这就是为什么它们可以调用drawRect),但是您将根据所需行为进行扩展或自定义。
PD:刚刚注意到我今天早些时候回答了你的另一个问题哈哈。