当前位置: 首页 > news >正文

开发网站价格我要申请邮箱

开发网站价格,我要申请邮箱,做哪个网站的推广最好,东莞网站建设推广哪家好文章目录 前言视图修饰符应用场景可见性完整示例ContentViewVideoPlayerViewScrollViewVisibilityApp 总结 前言 我们的滚动 API 中又有一个重要的新增功能#xff1a;滚动可见性。现在#xff0c;你可以获取可见标识符列表#xff0c;或者快速检查并监控 ScrollView 内视图… 文章目录 前言视图修饰符应用场景可见性完整示例ContentViewVideoPlayerViewScrollViewVisibilityApp 总结 前言 我们的滚动 API 中又有一个重要的新增功能滚动可见性。现在你可以获取可见标识符列表或者快速检查并监控 ScrollView 内视图的可见性状态。本周我们将学习如何使用新的 onScrollTargetVisibilityChange 和 onScrollVisibilityChange 视图修饰符。 视图修饰符 让我们先从 onScrollTargetVisibilityChange 视图修饰符开始。它设计得易于使用允许你将其附加到具有滚动目标布局的任何 ScrollView 上。让我们通过一个示例来探讨这个修饰符的使用。 struct ContentView: View {State private var visible: [Int] []var body: some View {ScrollView {LazyVStack {ForEach(1..100, id: \.self) { item inText(verbatim: item.formatted())}}.scrollTargetLayout()}.onScrollTargetVisibilityChange(idType: Int.self) { identifiers invisible identifiers}.onChange(of: visible) {print(visible)}} }如上例所示我们在懒加载栈LazyVStack上使用 scrollTargetLayout 视图修饰符以便允许 ScrollView 针对栈的子视图进行目标识别而不是针对栈本身。 要了解有关 scrollTargetLayout 视图修饰符的更多信息请查看我的文章《掌握 SwiftUI 中的 ScrollView滚动几何》。 应用场景 我们还将 onScrollTargetVisibilityChange 视图修饰符附加到 ScrollView 上提供标识符类型和操作闭包。在操作闭包内我们获取可见标识符列表并可以对可见项执行所需的操作。 有时视图需要在其可见性状态在 ScrollView 中发生变化时进行响应。对于这些情况SwiftUI 框架引入了 onScrollVisibilityChange 视图修饰符你可以将其附加到 ScrollView 内的任何视图上以处理其可见性。 struct VideoPlayerView: View {let url: URLState var player: AVPlayer?var body: some View {VideoPlayer(player: player).task {if player nil {player AVPlayer(url: url)}}.onScrollVisibilityChange { isVisible inif isVisible {player?.play()} else {player?.pause()}}} }上例定义了 VideoPlayerView 视图该视图在其可见时自动播放视频内容。正如你所见我们将 onScrollVisibilityChange 视图修饰符附加到视图本身并提供一个操作闭包。我们在操作闭包内获得可见性参数并可以对其变化进行响应。 可见性 onScrollVisibilityChange 和 onScrollTargetVisibilityChange 修饰符都具有 threshold 参数。threshold 参数允许我们调整需要可见的视口部分的数量以触发操作闭包。默认情况下SwiftUI 框架使用 0.5 作为阈值这意味着至少 50% 的视图需要可见SwiftUI 才会运行操作。但你可以轻松调整此值。 struct VideoPlayerView: View {let url: URLState var player: AVPlayer?var body: some View {VideoPlayer(player: player).task {if player nil {player AVPlayer(url: url)}}.onScrollVisibilityChange(threshold: 0.1) { isVisible inif isVisible {player?.play()} else {player?.pause()}}} }在上述示例中我们定义了阈值这意味着 SwiftUI 将在视图至少有 10% 可见时运行操作闭包。同样当视图从可见状态转换为不可见状态即显示的视口部分少于 10% 时也会运行该闭包。 完整示例 上面对视图修饰符有了初步了解它的设计得易于使用允许你将其附加到具有滚动目标布局的任何 ScrollView 上。让我们通过一个示例来探讨这个修饰符的使用。 示例代码如下 import SwiftUI import AVKitstruct ContentView: View {State private var visible: [Int] []var body: some View {ScrollView {LazyVStack {ForEach(1..100, id: \.self) { item inText(verbatim: item.formatted()).frame(width: 100, height: 100).background(item % 2 0 ? Color.blue : Color.red).cornerRadius(10).padding(5)}}.scrollTargetLayout()}.onScrollTargetVisibilityChange(idType: Int.self) { identifiers invisible identifiers}.onChange(of: visible) { newVisible inprint(Visible items: \(newVisible))}.navigationTitle(ScrollView Demo)} }struct VideoPlayerView: View {let url: URLState var player: AVPlayer?var body: some View {VideoPlayer(player: player).frame(height: 200).task {if player nil {player AVPlayer(url: url)}}.onScrollVisibilityChange { isVisible inif isVisible {player?.play()} else {player?.pause()}}} }main struct ScrollViewVisibilityApp: App {var body: some Scene {WindowGroup {NavigationView {VStack {ContentView()Spacer()VideoPlayerView(url: URL(string: https://www.example.com/video.mp4)!).padding()}}}} }这个示例 Demo 展示了如何使用 onScrollTargetVisibilityChange 和 onScrollVisibilityChange 视图修饰符来跟踪 ScrollView 中的视图可见性。整个示例分为两个部分一个是显示带有多个文本视图的 ScrollView另一个是显示一个视频播放器视图。 ContentView ScrollView 和 LazyVStack使用 ScrollView 包裹一个 LazyVStack在其中放置 1 到 99 的数字。每个数字都显示在一个 Text 视图中并有不同的背景颜色。scrollTargetLayout在 LazyVStack 上应用 scrollTargetLayout 视图修饰符以允许 ScrollView 针对栈的子视图进行目标识别。onScrollTargetVisibilityChange在 ScrollView 上应用 onScrollTargetVisibilityChange 视图修饰符并提供标识符类型和操作闭包。在操作闭包内获取可见标识符列表并赋值给 visible 状态变量。onChange监听 visible 状态变量的变化并打印当前可见的项。 VideoPlayerView VideoPlayer定义一个视频播放器视图使用 AVPlayer 播放视频。task在 task 修饰符中初始化播放器。onScrollVisibilityChange在视频播放器视图上应用 onScrollVisibilityChange 视图修饰符并提供一个操作闭包。在操作闭包内根据可见性状态来播放或暂停视频。 ScrollViewVisibilityApp 主应用入口定义主应用入口 ScrollViewVisibilityApp将 ContentView 和 VideoPlayerView 组合到一个垂直堆栈中并通过 NavigationView 进行导航。 运行这个 Demo你会看到一个带有多个文本视图的 ScrollView当你滚动时控制台会打印当前可见的项。此外在页面底部有一个视频播放器当视频播放器出现在视口内时它会自动播放当其离开视口时会自动暂停。 总结 今天我们学习了如何跟踪 ScrollView 内特定视图的可见性并监控可见标识符列表。示例展示了如何使用 SwiftUI 的滚动可见性修饰符来增强用户体验和交互性。希望能对你有所帮助。
http://www.dnsts.com.cn/news/272806.html

相关文章:

  • 制作网站哪里做免费的行情软件网站下载入口
  • 南宁网站建设技术精粹网站的流量检测怎么做
  • 京东联盟的网站怎么做的昆明seo网站排名优化
  • 淘宝网站建设那么便宜达人设计网官方网站
  • PHP网站建设视频免费网站登录怎么保存用户名密码
  • 宁波学校网站建设网站建设欣
  • 网站建设国外黄页88成立时间
  • 公司的网站建设要记到什么科目网站开发投资成本
  • 网站建设 百度文库合肥最新通知今天
  • 网站应该设计成什么样年报申报入口官网
  • 深圳网站 制作信科便宜桂林人论坛户外部落
  • 外贸网站建设解决方案wordpress生成封面分享
  • 学做美食交流网站有哪些打不开wordpress网址
  • 昭通市网站建设昆明学习网站建设
  • 网站模板样式修改谷歌推广代理公司
  • 开封市网站开发公司wordpress 时间插件
  • 网站上的动态背景怎么做的网站空间价格怎么算
  • 做后期的网站有哪些家庭优化大师
  • 做网站运营需要具备哪些能力做软件的公司网站有哪些
  • 园区网站建设方案东港区网站制作
  • 网站套餐表格模板南昌seo网站排名
  • 网站排名对比金乡做网站 亿九
  • 上海哪家公司提供专业的网站建设兰州网站建设咨询薇
  • 网站开发工作方向标志设计欣赏网站
  • 扬中网站哪家做得好道士召唤10个月灵的传奇手游
  • 上海网站建设-网建知识广西桂林十大特产
  • 外贸网站建设公司咨询苏州网站设计公司兴田德润i网址多少
  • 网站禁止右键代码莆田房产网
  • 哪个网站做ic好wordpress 归档页面地址
  • 苏州专业高端网站建设公司多元网络兰州网站建设