1

完全にカスタムUIRefreshコントロールを作成する必要があります。アニメーション、画像、プルダウン量など...

私の最初の考えは、ゼロから始めて、UIViewController を使用し、それに独自のビューを追加し、UIScrollViewDelegateメソッドにアクセスしてアニメーション化することです。

私はこれをすべて行うことができますが、作業がわずかに少なく、複数UITableViewの s に簡単に追加できる方法はありますか?

UIRefreshControlその中のこの量のものをサブクラス化して変更することは可能ですか?

4

3 に答える 3

3

回答を更新しました

  • Swift 3.1 へのGitHubプロジェクトの更新
  • QuartzCode をバージョン 1.55.0 に更新 (生成コードの変更)
  • refreshControl新しいプロパティ(iOS 10 で導入)を使用するようにコードがリファクタリングされました(さらに「迅速」になりました)。
  • @Hanny の提案が含まれています (下) (ありがとう!)

あなたが投稿したYouTubeリンクが好きです。:) 良い結果です。

参考までに: QuartzCode はUIRefreshControl、ゼロからアニメーションを作成するのに非常に適しています。

この小さなプロジェクト(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()
}

乾杯!

于 2016-05-11T12:09:10.547 に答える
1

EGOTableViewPullRefresh素晴らしい「プルダウンして更新」機能です。githubで入手できます。写真や動作などをカスタマイズできます UIRefreshControl。iOS 6.0 以降でのみ使用できます。EGOTableViewPullRefreshiOS5以前で使えます!

于 2013-07-17T13:09:34.613 に答える
0

Custom Pull to Refresh コントロールを実装するための Objective-C と Swift のサンプル コードを含むチュートリアルがあります。ここで見つけることができます: http://www.jackrabbitmobile.com/design/ios-custom-pull-to-refresh-control/

ご不明な点がございましたら、お気軽にお問い合わせください。

--アンソニー

于 2015-02-27T14:50:32.663 に答える