【Swift5】UITableView の contentOffset.y の値に上限値・下限値を設定する

UITableView の contentOffset.y の値を使用して、それに伴ったアニメーション処理をしたかったのですが、0.0 未満の contentOffset.y は不要だったので、負の値を省いた contentOffset.y を取得するためのコンパクトな書き方を記載します。

どんくさい書き方

負の値になったら 0.0 を代入するどんくさい書き方。

こういう書き方してるプロジェクトも結構あったし、新米のときはバリバリでこの書き方をしてた記憶があります。笑

コンパクトな書き方

1行やーッ б(>ε<)∂

Generic Fundation に max(_:_:) という関数があり、2つの比較可能な値の大きい方を返します。
上記の書き方だと、0.0 と scrollView.contentOffset.y を比較し、大きい値を返すので、scrollView.contentOffset.y が負の値になると 0.0 が返ってくるという処理です。
min(_:_:) はお察しの通り、小さい方の値を返します。

さいごに

こういうのってアンテナ張りまくってないと、知る機会がない気がします (´・ω・`)
とりあえずこの関数は便利だし行数も減るしよく使うので、積極的に使用していきまーしょ。

コメント