画面更新のクルクル

クルクル回って画面更新してくれるリフレッシュコントロール。スクロールビューと組み合わせて使用してます。

完成形はこれ

画面を下に引っ張ったら、クルクルっと画面更新動作して文字が変わります

Main.storyboardの編集

今回はリフレッシュコントロールの説明なので、スクロールビューの詳細については過去記事参照

画像のようにScrollViewViewラベルを配置します

ScrollViewViewも画面いっぱいに広げてください。その時、Content Layout Guidesのチェックを外しておくとエラーなくオートレイアウトの制約を付けれます。

Content Layout Guidesのチェックを外して制約をつける

ViewController.swiftの編集

ScrollViewラベルは、コードにひも付けてください。コード全体は以下です。

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var scrollView: UIScrollView!
    @IBOutlet weak var refleshLabel: UILabel!
    //画面下げたらリフレッシュ
    let refreshControl = UIRefreshControl()
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        //scrollviewのリフレッシュ動作 func refresh参照
        scrollView.refreshControl = refreshControl
        refreshControl.addTarget(self,action: #selector(ViewController.refresh(sender:)),for: .valueChanged)
        
        //起動時のラベルの表示文字
        refleshLabel.text = "更新してください"
        
    }
    
    //scrollviewのリフレッシュ動作
    @objc func refresh(sender: UIRefreshControl){
        
        //リフレッシュ時の動作はココに書く
        refleshLabel.text = "更新されました!"
        
        //リフレッシュのクルクルを遅延させる
        DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) { [weak self] in
            self?.scrollView.refreshControl?.endRefreshing()
            
        }
    }
}

おしまい(´∀`)

コメント

タイトルとURLをコピーしました