UIRefreshControl - リフレッシュコントロール (テーブルのグルグル)
説明
UIRefreshControlはUIControlのサブクラス
テーブルを下に引っ張った時に出るグルグル.
UITableViewに適用するように設計されているため,UIScrollViewなどに用いるとおかしな動作になる可能性がある.
MYTableViewについては
ソースコード
UIRefreshControlSample.swift
import UIKit class UIRefreshControlSample: UIView { var rc: UIRefreshControl! override init(frame: CGRect) { super.init(frame: frame) self.backgroundColor = colorPattern.back() // リフレッシュコントロールを設置するテーブル // テーブルのみに適用することが推奨されている let tv = MYTableView(frame: CGRectMake(20, 40, self.frame.width - 40, self.frame.height - 80)) self.addSubview(tv) // デザイン tv.layer.masksToBounds = true tv.layer.cornerRadius = 10.0 // 要素追加 for i in 0..<30 { tv.append("ITEM \(i)", detail: "detail\(i)") } rc = UIRefreshControl() // アイコンの下の文字 rc.attributedTitle = NSAttributedString(string: "Refresh Control") // 更新が始まった時の処理の指定 rc.addTarget(self, action: "refreshControlChanged:", forControlEvents: UIControlEvents.ValueChanged) tv.addSubview(rc) } func refreshControlChanged(rc: UIRefreshControl) { println("refreshing") // 更新処理を書く var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "refreshed", userInfo: nil, repeats: false) } func refreshed() { println("refreshed") // リフレッシュコントロールを消す rc.endRefreshing() } required init(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } }
ViewController.swift
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = colorPattern.back() self.view.addSubview(UIRefreshControlSample(frame: self.view.frame)) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } }