为啥自定义 UIRefreshControl 类的背景颜色在 Swift 中没有改变?

Posted

技术标签:

【中文标题】为啥自定义 UIRefreshControl 类的背景颜色在 Swift 中没有改变?【英文标题】:Why Custom UIRefreshControl Class's Background Color not changing in Swift?为什么自定义 UIRefreshControl 类的背景颜色在 Swift 中没有改变? 【发布时间】:2017-10-27 14:51:42 【问题描述】:

我创建了自定义 UIRefreshControl 如下:

class CustRefreshCont: UIRefreshControl 

    override func draw(_ rect: CGRect) 
        // Drawing code
        let blueColor: UIColor = UIColor.blue
        let lightGrayColor: UIColor = UIColor.lightGray

        self.tintColor = blueColor
        self.backgroundColor = lightGrayColor

        self.attributedTitle = NSAttributedString(string: "Updating data", attributes: [NSAttributedStringKey.foregroundColor : self.tintColor, NSAttributedStringKey.backgroundColor : self.backgroundColor!])
    

我从 UIViewController 分配 UIRefreshControl 的方式复制如下:

    let refreshControl = CustRefreshCont()

正在显示文本和 ActivityIndi​​cator 自定义项,但背景颜色显示为黑色。

你知道我的代码有什么问题吗?

【问题讨论】:

所以 tintColor 和 backgroundColor 没有正确显示对吗? tintColor 显示正确。只是视图的背景颜色。 【参考方案1】:

将您的配置代码移至初始化程序。我不认为draw 方法是正确的方法。

override init() 
    super.init()
    backgroundColor = .red
    tintColor = .blue

【讨论】:

以上是关于为啥自定义 UIRefreshControl 类的背景颜色在 Swift 中没有改变?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Lottie 自定义 UIRefreshControl

Swift:WKWebView 中 UIRefreshControl 的自定义操作

如何自定义 UIRefreshControl 以使下拉高度低于默认值

如何使用不同的图像和位置自定义 UIRefreshControl?

如何使用不同的图像和位置自定义 UIRefreshControl?

UIRefreshControl 带有两个异步 json 下载来填充 UITableView 行和自定义标题视图