iOS UIScrollView简介及使用技巧

本文详细介绍了UIScrollView的属性,如delaysContentTouches和cancelsTouches的用法,以及UIScrollViewDelegate中的关键代理方法,包括滚动、缩放、拖拽等各个阶段的回调。同时,还分享了在XIB中使用UIScrollView的注意事项,如何设置contentView以及适配滚动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UIScrollView详细介绍

下面通过对UIScrollView的属性和代理的介绍,以及demo的展示:

  • UIScrollView的属性介绍
  • UIScrollView的代理介绍
  • XIB用法及注意事项

UIScrollView的属性总结

属性作用
CGPoint contentOffSet监控目前滚动的位置
CGSize contentSize滚动范围的大小
UIEdgeInsets contentInset视图在scrollView中的位置
id<UIScrollerViewDelegate> delegate设置协议
BOOL directionalLockEnabled指定控件是否只能在一个方向上滚动
BOOL bounces控制控件遇到边框是否反弹
BOOL alwaysBounceVertical控制垂直方向遇到边框是否反弹
BOOL alwaysBounceHorizontal控制水平方向遇到边框是否反弹
BOOL pagingEnabled控制控件是否整页翻动
BOOL scrollEnabled控制控件是否能滚动
BOOL showsHorizontalScrollIndicator控制是否显示水平方向的滚动条
BOOL showsVerticalScrollIndicator控制是否显示垂直方向的滚动条
UIEdgeInsets scrollIndicatorInsets指定滚动条在scrollerView中的位置
UIScrollViewIndicatorStyle indicatorStyle设定滚动条的样式
float decelerationRate改变scrollerView的减速点位置
BOOL tracking监控当前目标是否正在被跟踪
BOOL dragging监控当前目标是否正在被拖拽
BOOL decelerating监控当前目标是否正在减速
BOOL delaysContentTouches控制视图是否延时调用开始滚动的方法
BOOL canCancelContentTouches控制控件是否接触取消touch的事件
float minimumZoomScale缩小的最小比例
float maximumZoomScale放大的最大比例
float zoomScale设置变化比例
BOOL bouncesZoom控制缩放的时候是否会反弹
BOOL zooming判断控件的大小是否正在改变
BOOL zoomBouncing判断是否正在进行缩放反弹
BOOL scrollsToTop控制控件滚动到顶部
  1. delaysContentTouches的作用:
    这个标志默认是YES,使用上面的150ms的timer,如果设置为NO,touch事件立即传递给subView,不会有150ms的等待。

  2. cancelsTouches的作用:
    这个标准默认为YES,如果设置为NO,这消息一旦传递给subView,这scroll事件不会再发生。

UIScrollView的代理方法

< UIScrollViewDelegate >协议中方法的触发时机,如果想要哪种效果,只需在相应方法里做操作

  1. 只要 scrollView 滑动就会触发 ( 会触发多次 )
    *-(void)scrollViewDidScroll:(UIScrollView*)scrollView

  2. 只要 scrollView 缩放就会触发
    *-(void)scrollViewDidZoom:(UIScrollView*)scrollView

  3. 当将要拖拽 scrollView 时触发 , 手指结束 scrollView 并且将要滑动时触发
    *-(void)scrollViewWillBeginDragging:(UIScrollView*)scrollView

  4. 当结束拖拽时触发 ( 手指将要离开屏幕 )
    -(void)scrollViewWillEndDragging:(UIScrollView*)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(CGPoint )targetContentOffset

  5. 当结束拖拽时触发 ( 手指已经离开屏幕 )
    *-(void)scrollViewDidEndDragging:(UIScrollView*)scrollView willDecelerate:(BOOL)decelerate

  6. 当 scrollView 滑动将要减速时触发 ( 将要停止 )
    - ( void )scrollViewWillBeginDecelerating:( UIScrollView )scrollView

  7. 当 scrollView 结束减速时触发 ( 停止滑动 )
    *-(void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView

  8. 当设置 scrollView, 有一个动画效果时触发
    *-(void)scrollViewDidEndScrollingAnimation:(UIScrollView*)scrollView

  9. 设置要缩放的 scrollView 上面的哪一个子视图 , 只能是子视图 , 不能是 scrollView 本身 .
    *-(UIView *)viewForZoomingInScrollView:(UIScrollView*)scrollView

  10. 当将要开始缩放时触发
    -(void)scrollViewWillBeginZooming:(UIScrollView*)scrollView withView:( UIView )view

  11. 当结束缩放时触发
    *-(void)scrollViewDidEndZooming:(UIScrollView*)scrollView withView:(UIView*)view atScale:(CGFloat)scale

  12. 只有当 scrollsToTop 属性设置为 YES 时 , 该方法才会触发 , 进一步询问点击状态条是否有效
    *-(BOOL)scrollViewShouldScrollToTop:(UIScrollView*)scrollView

  13. 当点击状态条并且 scrollView 滑动到顶端时触发
    *-(void)scrollViewDidScrollToTop:(UIScrollView*)scrollView

XIB用法及注意事项

  • UIScrollView 之内要手动拖一个view作为UISrollView的contentView,上下左右都距离为0,水平滚动做中心Y相等,垂直滚动做中心X相等,并且把view上最下方的控件做一个向下的距离适配即可适配完成.

适配图解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值