SwiftUI不借助ScrollViewReader和ScrollViewProxy实现List自动滚动到底部

Posted 大熊猫侯佩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SwiftUI不借助ScrollViewReader和ScrollViewProxy实现List自动滚动到底部相关的知识,希望对你有一定的参考价值。



功能需求

从SwiftUI 2.0开始(ios 14.0+,MacOS 11.0+),对于List的滚动操作我们有了更多的选择。借助于ScrollViewReader和ScrollViewProxy两枚利器,我们可以轻松读取和设置List的滚动位置。

但是如何在早期的SwiftUI(1.0)中实现该功能呢?

如上所示,我们让List在有新内容加入时自动滚动到底部(MacOS 10.15),实际上iOS实现起来比MacOS还要简单一些,所以明白了MacOS的实现奥秘,不难举一反三。

在本篇博文中您将学到:

  • SwiftUI中读写List滚动位置的玄机到底在哪?
  • 在SwiftUI中读取和设置List滚动位置的几种方法。
  • MacOS中如何让List自动滚动到显示内容的底部?
  • iOS又如何实现上述功能?
  • 如何让用户动态决定滚动或停止自动滚动到底部?

请系好安全带,我们即将驶入星辰大海

以上是关于SwiftUI不借助ScrollViewReader和ScrollViewProxy实现List自动滚动到底部的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI不借助第三方库在App中保存和加载网页归档文件的极简方法

SwiftUI3.0将UIKit ViewController转化成 swiftUI的view

SwiftUI-混合开发

在 SwiftUI 中的特定页面上隐藏标签栏

是否可以在 SwiftUI 中为 TextField 添加字距调整?

在所有SwiftUI版本(1.0-4.0)中原生实现Charts图表视图之思路