47、iOS 滚动视图与表格视图深度解析

iOS 滚动视图与表格视图深度解析

1. 滚动视图触摸处理

早期 iOS 系统中, UIScrollView 内部实现的改进解决了许多与滚动视图触摸相关的问题。滚动视图会将拖动或捏合手势解释为滚动或缩放命令,其他手势则会传递给子视图,因此滚动视图内的按钮等界面元素能正常工作。

甚至可以将一个滚动视图嵌套在另一个滚动视图中,这在一些意想不到的场景中非常有用。例如苹果的 PhotoScroller 应用,全屏显示单张照片,用户可以分页滚动切换照片,还能通过捏合手势缩放当前照片。这是通过嵌套滚动视图实现的,外层滚动视图用于照片分页,内层滚动视图包含当前照片,用于缩放和查看缩放后照片的不同部分。同样,在 WWDC 2013 的视频中,也对 iOS 7 锁屏界面使用嵌套滚动视图的方式进行了解构。

手势识别器( Gesture Recognizers )极大简化了为滚动视图添加自定义手势的任务。过去,苹果文档中实现双击放大和双指点击缩小的代码使用了传统触摸处理方式,现在只需将相应的手势识别器附加到滚动视图的可缩放子视图上,它们会自动协调各种手势。

过去,要使滚动视图内的元素可拖动,需要将滚动视图的 canCancelContentTouches 属性设置为 false 。但如果不使用传统的直接触摸处理方式,通常无需关注此属性。无论该属性如何设置,像 UISlider 这样的可拖动控件在滚动视图内仍可正常拖动。

以下是一个通过手势识别器实现滚动视图内可拖动对象的示例:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值