を作るためのtableViewを使用するには、Swift3.0スウィフト - ここで更新リスト
private let MAX_HEIGHT: CGFloat = 100.0
override func viewDidLoad() {
super.viewDidLoad()
self.spinner = UIActivityIndicatorView(frame: CGRect(x: 0, y: -MAX_HEIGHT, width: self.view.bounds.width, height: MAX_HEIGHT))
self.spinner.activityIndicatorViewStyle = .whiteLarge
self.spinner.color = .blue
self.view.insertSubview(spinner, at: 0)
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return 20
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "basicCell", for: indexPath)
cell.textLabel?.text = "The \(indexPath.row) Row"
return cell
}
とコードであり、ここで重要なコードです: 私はリストをドラッグすると、それはこの
override func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
if -scrollView.contentOffset.y >= MAX_HEIGHT + scrollView.contentInset.top {
UIView.animate(withDuration: 0.5, animations: {
scrollView.contentInset.top += MAX_HEIGHT
})
self.update()
}
}
func update() {
self.spinner.startAnimating()
// I want to make a sleep for 2 seconds, But sleep() is not suit
UIView.animate(withDuration: 2.0, animations: {
self.view.alpha = 0.99
}, completion: { (_) -> Void in
self.view.alpha = 1.0
self.spinner.stopAnimating()
UIView.animate(withDuration: 0.5, animations: {
self.tableView.contentInset.top -= MAX_HEIGHT
})
})
}
を行います
私が欲しいのアニメーションは、私は私のドラッグを終了したときに、リストはこの
0123のような更新のアニメーションを持つことになりますです私がドラッグを終了すると、scrollview.contentInset.topは100.0に設定されます。もう少し長めにドラッグすると(125.0 ..)、リストにはドラッグした位置からゆっくりとスライドするようなアニメーションが表示されます1002000
結果はドラッグを終了するとリストが少しスライドします長くして100.0にスライドすると、100.0に直接スライドしませんでした。 リストがすばやく動いているようです。
あなたはこの機能がすでに処理されることを知っています役立ちます
UIRefreshControl
を使用してみてください/ uirefreshcontrol)? [この質問](http://stackoverflow.com/questions/24475792/how-to-use-pull-to-refresh-in-swift-2)を調べて、その使い方を知りたい場合があります。 –
UIRefreshControlを使用することは有望な解決策に見えますが、カスタムアニメーションを追加したい場合、UIRefreshControlは大いに役立ちません。私はそのようなカスタムコントロールを書く必要があります – pluto
今、アイデアは:カスタムUIRefreshControl(カスタムアニメーション)をどのように作成できるかを調べるべきです。 –