UITableView の contentOffset.y の値を使用して、それに伴ったアニメーション処理をしたかったのですが、0.0 未満の contentOffset.y は不要だったので、負の値を省いた contentOffset.y を取得するためのコンパクトな書き方を記載します。
-
どんくさい書き方
-
コンパクトな書き方
-
さいごに
どんくさい書き方
負の値になったら 0.0 を代入するどんくさい書き方。
func scrollViewDidScroll(_ scrollView: UIScrollView) {
var contentOffsetY = scrollView.contentOffset.y
if contentOffsetY < 0.0 {
contentOffsetY = 0.0
print(contentOffsetY)
func scrollViewDidScroll(_ scrollView: UIScrollView) {
print(max(0.0, scrollView.contentOffset.y))
1行やーッ б(>ε<)∂
Generic Fundation に max(_:_:) という関数があり、2つの比較可能な値の大きい方を返します。
上記の書き方だと、0.0 と scrollView.contentOffset.y を比較し、大きい値を返すので、scrollView.contentOffset.y が負の値になると 0.0 が返ってくるという処理です。
min(_:_:) はお察しの通り、小さい方の値を返します。
こういうのってアンテナ張りまくってないと、知る機会がない気がします (´・ω・`)
とりあえずこの関数は便利だし行数も減るしよく使うので、積極的に使用していきまーしょ。
東京で6年ほど iOSアプリの開発をして、今は実家に戻って介護&リモートで開発しています o(・_・)9
個人的なアプリ開発ではライトアプリを3つほど。
スマホ、ガジェット大好き ٩( ‘ω’ )و
UI/UXのデザイン系も興味あるマン。