gpt4 book ai didi

objective-c - 在 UIButton 的背景图片上自定义绘图

转载 作者:可可西里 更新时间:2023-11-01 04:42:40 24 4
gpt4 key购买 nike

UIButton的绘制方法调用顺序是怎样的?

我有一个UIButton 子类,我们称它为UIMyButton。我将它添加到 .xib Controller 并给它一个背景图像。然后在 UIMyButton.m 文件中,我覆盖了 drawRect 方法并绘制了一个形状。像这样的东西:

- (void)drawRect:(CGRect)rect {
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(c, [UIColor orangeColor].CGColor);
CGContextFillRect(c, rect);
}

问题在于它在背景图像下方绘制了橙色矩形。什么方法负责绘制/更新背景图像(例如,它在“点击”时更新)?如何在不向按钮添加额外的自定义 subview (或者背景图像本身就是 subview )的情况下强制绘制在顶部?

我只是想清楚地了解 UIButton 绘制序列的工作原理。

最佳答案

解决方案是不为按钮使用背景。相反,在 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);
}

关于objective-c - 在 UIButton 的背景图片上自定义绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7891026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com