gpt4 book ai didi

swift - UIButton的自定义绘制

转载 作者:行者123 更新时间:2023-11-30 10:14:31 24 4
gpt4 key购买 nike

如何以编程方式为 UIButton 绘制图像,而不是将其作为静态资源传递?

子类化UIButton并重写drawRect方法会导致按钮失去Tint行为以及可能的其他绘图效果。调用 super.drawRect 不会恢复这些行为。

最佳答案

我找到了自己的解决方案。将其绘制到 UIImage 中并将其作为正常状态的背景图像传递给按钮,允许动态创建图像并保留 UIButton 效果。

 class MyButton: UIButton {

required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
let image = createImage(self.bounds)
self.setBackgroundImage(image, forState: UIControlState.Normal)
}


func createImage(rect: CGRect) -> UIImage{

UIGraphicsBeginImageContext(rect.size)

let context = UIGraphicsGetCurrentContext();

//just a circle
CGContextSetFillColorWithColor(context, UIColor.whiteColor().CGColor);
CGContextFillEllipseInRect(context, CGRectInset(rect, 4, 4));
CGContextStrokePath(context);

let image = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext()

return image
}
}

关于swift - UIButton的自定义绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30968885/

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