回答を更新しました
- 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()
}
乾杯!