実行環境
Swift | 5.6 |
Xcode | 13.3 |
完成物
下のように、
ボタンを押すとスクロール位置がトップに戻るUIをご紹介します。
実装
下記のコードのように「setContentOffset」を書くだけで簡単に戻せるらしい。
tableView.setContentOffset(.zero, animated: false)
ちなみに、「animated」を「true」に変えると、動画のようにおしゃれに自動スクロールされます。
いやぁ〜、これを1つのコードで提供しているAppleすごい笑
公式リファレンスはこちらから
下記のように書かれていて、CGPointを引数にトップ以外の場所にも自動スクロールできるらしい。
open func setContentOffset(_ contentOffset: CGPoint, animated: Bool)
// animate at constant velocity to new offset
全コード
クローンをしてローカル環境で見たい方や、もっと詳細に見たい方は
こちらのGitHubにも載せているので、是非!
import UIKit
class ViewController: UIViewController, UITableViewDelegate,UITableViewDataSource {
private let totalCell = 100
@IBOutlet private weak var tableView: UITableView!
@IBAction private func didTapReturnButton(_ sender: Any) {
tableView.setContentOffset(.zero, animated: true)
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
totalCell
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
cell.textLabel?.text = "\(indexPath.row + 1):番目のCell"
return cell
}
}
ということで、本記事はUITableViewのスクロール位置をトップに戻す方法を自分のメモ程度にまとめました。
本記事を書いている僕自身は、まだSwift初学者のためコードに至らない点が多いと思います。参考程度にご活用下さい。
アドバイスやコードの改善などあれば本記事の最後の部分からコメントしてくださいね。
最後まで読んでいただきありがとうございました!
おすすめSwift書籍
Swiftを学ぶなら、間違いのない2冊はこちら
リンク
リンク
Xcodeを学ぶなら下の一冊
リンク