调用UIButton
绘图序列的方法是什么?
我有一个UIButton
子类,我们称之为UIMyButton
。我将它添加到.xib控制器并为其提供背景图像。然后在UIMyButton.m文件中,我重写drawRect
方法并绘制一个形状。
类似的东西:
- (void)drawRect:(CGRect)rect {
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(c, [UIColor orangeColor].CGColor);
CGContextFillRect(c, rect);
}
问题是它在背景图像下面绘制橙色矩形。有哪些方法负责绘制/更新背景图像(例如,它更新“点按”)?如何在不向按钮添加其他自定义子视图的情况下强制绘制在顶部(或者背景图像是子视图本身)?
我只是想清楚地了解UIButton
绘图序列的工作原理。
答案 0 :(得分:4)
解决方案是不使用按钮的背景。相反,在drawRect方法中绘制图像,如下所示:
-(void)drawRect:(CGRect)rect
{
CGContextRef ctx=UIGraphicsGetCurrentContext();
UIImage *image = [UIImage imageNamed:@"image.jpg"];
[image drawInRect:self.bounds];
CGContextSetFillColorWithColor(c, [UIColor orangeColor].CGColor);
CGContextFillRect(c, rect);
}