添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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

  1. どんくさい書き方
  2. コンパクトな書き方
  3. さいごに

どんくさい書き方

負の値になったら 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のデザイン系も興味あるマン。