美文网首页
(Swift) UIScrollView常用属性

(Swift) UIScrollView常用属性

作者: 布呐呐u | 来源:发表于2024-06-18 16:25 被阅读0次
  • delaysContentTouches 一个布尔值,用于确定滚动视图是否延迟触摸手势的处理。

当 delaysContentTouches 设为 true(默认值)时,如果用户在UIScrollView或其子类中的内容上轻触,系统会短暂延迟发送这个触摸事件给实际被触摸的内容视图(如cell内的按钮)。这一短暂的延迟是为了判断用户是否正在进行滚动、滑动或缩放的手势。如果在这段时间内(通常是几百毫秒),检测到用户的触摸动作有滑动的趋势,那么这个最初的触摸就不会传递给内容视图,而是由滚动视图自己处理,以便开始滚动操作。这样设计的目的是为了防止在用户试图滚动视图时,意外地触发了内容视图内的按钮点击等交互。

当设为 false 时,触摸事件会立即传递给被触摸的内容视图,没有延迟。这意味着即使用户的意图可能是滚动,内容视图上的交互元素也会立即响应触摸事件,可能导致滚动行为不易触发。

设置为true:适合于那些内容区域较大,滚动交互频繁的场景。这样可以确保用户在尝试滚动时,不会因为轻微的触碰就触发内容视图内的点击事件,提供更流畅的滚动体验。
设置为false:如果你的应用场景需要内容视图中的交互元素(如按钮、开关)具有很高的响应性,不希望因为滚动判断而延迟这些交互的响应,可以将其设为NO。例如,在一个项目列表中,每个项目都有立即响应的点击操作,这时可能就需要禁用该延迟。

self.tableView.delaysContentTouches = false
  • canCancelContentTouches 一个布尔值,控制内容视图中的触摸是否总是导致跟踪。

当 canCancelContentTouches 设为 true(默认值)时,如果用户在一个可滚动视图中的内容上轻触并停留片刻,这个轻触动作(touch down)最初会被视图识别并可能开始处理滚动或缩放手势的准备阶段。但是,如果用户随后迅速将手指移动(比如开始滑动),这次触摸事件会被“取消”,允许滚动视图捕捉这个触摸并开始滚动内容,而不是将触摸传递给内容视图(比如cell内部的按钮点击)处理。

当设为 false 时,即使用户触摸后开始滑动,视图也不会取消这个触摸事件。这意味着,如果用户的触摸落在了一个可交互的子视图(如按钮)上,并且即使跟随有滑动操作,该子视图也会接收到触摸事件并可能触发其关联的动作(如按钮点击),即使这会导致滚动行为不会发生。

设置为 true,当你希望确保滚动视图能够流畅响应用户的滚动和缩放手势,尤其是当内容视图包含许多可交互元素时,这可以帮助避免意外的按钮点击或其他交互。
设置为 false,如果你的内容视图中的交互元素对用户操作至关重要,不希望滚动行为优先于这些交互(例如,一个满是小按钮的列表,你希望确保用户能准确点击每个按钮)。

self.tableView.canCancelContentTouches = false

相关文章

网友评论

      本文标题:(Swift) UIScrollView常用属性

      本文链接:https://www.haomeiwen.com/subject/asbfcjtx.html