gpt4 book ai didi

ios - 创建一个完全自定义的 UIRefreshControl

转载 作者:行者123 更新时间:2023-12-01 18:20:31 32 4
gpt4 key购买 nike

我需要创建一个完全自定义的 UIRefresh控制。动画、图像、下拉量等...

我最初的想法是从头开始,使用 UIViewController,向其中添加我自己的 View ,通过访问 UIScrollViewDelegate 进行动画处理方法。

我可以做到这一切,但是有没有一种方法可以减少工作量并且更容易添加到多个 UITableView年代?

是否可以继承 UIRefreshControl并改变里面的这种数量的东西?

最佳答案

答案已更新

  • GitHub项目更新到 Swift 3.1
  • 将 QuartzCode 更新到版本
    1.55.0(生成代码的更改)
  • 代码重构为使用新的 refreshControl房产 (introduced in iOS10) (现在也更“迅速”)。
  • 包括@Hanny 的建议(在下方)(谢谢!)


  • 我喜欢你发布的 YouTube 链接。 :) 不错的结果。

    供引用:QuartzCode 非常适合创建 UIRefreshControl从头开始制作动画。

    查看 this little project (GitHub)。
    在其中,您将找到 QuartzCode 项目文件以及如何将其与 UITableView 集成的示例。 .

    我认为其中最重要的部分是 refresh功能:
    /// Called everytime refresh control's value changes.
    ///
    /// - parameter sender: The `UIRefreshControl` of this TableView.
    @IBAction func refresh(_ sender: UIRefreshControl) {

    animate()

    // In this "demo", the refresh will last 5.0 seconds.
    DispatchQueue.main.asyncAfter(deadline: .now() + 5) {

    // Do something with the retrieved data...
    // TODO

    // ... then end the refresh operation.
    self.refreshControl?.endRefreshing()

    // Stop animations.
    self.stopAnimations()
    }
    }

    看看使用动画是多么容易:
    /// Three examples. Uncomment / comment to check all of them.
    func animate() {

    // Example 01.
    animateCloudUpAndDown()

    // Example 02.
    //animateCloudStrokeWithGradientFill()

    // Example 03.
    //animateCloudStrokeWithSolidFill()
    }

    // MARK: - Animation Examples

    /// Animates the cloud up and down.
    func animateCloudUpAndDown() {
    customUIRefreshControl.addRefreshUpDownAnimation()
    }

    /// "Draws" the cloud by make its stroke line gradually visible, then shows
    /// a solid blueish background and then fades everything out.
    func animateCloudStrokeWithGradientFill() {
    customUIRefreshControl.addRefreshGradientAnimation()
    }

    /// "Draws" the cloud by make its stroke line gradually visible, then shows
    /// a gradient blueish background and then fades everything out.
    func animateCloudStrokeWithSolidFill() {
    customUIRefreshControl.addRefreshSolidAnimation()
    }

    干杯!

    关于ios - 创建一个完全自定义的 UIRefreshControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17700557/

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