用 UIImageView 替换 UIRefreshControl

Posted

技术标签:

【中文标题】用 UIImageView 替换 UIRefreshControl【英文标题】:Replace UIRefreshControl with UIImageView 【发布时间】:2017-08-14 11:19:46 【问题描述】:

我的UITableView 中有一个UIRefreshControl。我想用我自己的替换系统的刷新图标。我试过像这样向 refreshControl 添加一个子视图......

    let refreshImage = UIImageView()
    refreshImage.image = UIImage(named: "RefreshIcon")
    refreshControl.insertSubview(refreshImage, at: 0)
    tableview.addSubview(refreshControl)

但这没有用。有没有人有任何想法?非常感谢!

【问题讨论】:

尝试 refreshImage.frame = refreshControl.bounds, refreshControl.addSubview(refreshImage) 【参考方案1】:

请试试这个代码:

 let refreshImage = UIImageView()
    refreshImage.image = UIImage(named: "RefreshIcon")
    refreshControl.backgroundColor = UIColor.clear
    refreshControl.tintColor = UIColor.clear
    refreshControl.addSubview(refreshImage)
    tableview.addSubview(refreshControl)

然后将其居中放置在顶部,您可以使用:

    refreshImage.frame = refreshControl.bounds.offsetBy(dx: self.view.frame.size.width / 2 - 20 // half the width of the refreshImage, dy: 10)
    refreshImage.frame.size.width = 40 // Whatever width you want
    refreshImage.frame.size.height = 40 // Whatever height you want

【讨论】:

好的,这样就可以了,但是图像在屏幕上被拉伸了。图像是一个正方形。所以,我用refreshImage.frame = CGRect(x: 0, y: 0, width: 20, height: 20) 替换了refreshImage.frame = refreshControl.bounds。但是什么也没出现,哈哈。 当我设置这个 refreshImage.frame = CGRect(x: 0, y: 0, width: 20, height: 20) 时,它在我身边工作,这显示了刷新标题的 at 角。我使用的是jpg格式图片@JacobCavin 使用格式为 RefreshIcon.png 的图像名称,无论您的格式如何@JacobCavin 我只需要将图像居中到屏幕的 x 和屏幕的顶部。 是的,没错,那么图像显示与否? @JacobCavin

以上是关于用 UIImageView 替换 UIRefreshControl的主要内容,如果未能解决你的问题,请参考以下文章

替换 UIlabel 代替 UIImageView 而不删除 interfacebuilder 中的约束

如何在 iOS 上的 UIScrollView 中正确替换 UIImageView 中的图像

在 UITableViewCell 中用 UILabel 替换 UIImageView

UIImageView 识别器

UITableView 中多张图片的延迟加载

一些不需要的 UIImageView 在尝试将它们设置为 UITableView 的边框时消失了