scroll view 原理
在滚动过程当中,其实是在修改原点坐标
当手指触摸后, scroll view会暂时拦截触摸事件,使用一个
计时器,假如在计时器到点后,没有发生手指移动事件,
那么,scroll view发送tracking events到被点击的subview
假如在计时器到点前,发生了移动事件,那么 scroll view 取消tracking
自己发生滚动
子类可以重载touchesShouldBegin:withEvent:inContentView: 决定自己是否接收touch事件
pagingEnabled当值是YES,会自动滚动到subview的边界,默认是NO
touchesShouldCancelInContentView: 开始发送tracking messages消息给subview的时候
调用这个方法,决定是否发送tracking messages消息到subview,假如返回NO,发送,YES则不发送
假如 canCancelContentTouches属性是NO,则不调用这个方法
来影响如何处理滚动手势
scroll view还处理缩放和平移手势
要实现缩放和平移,必须实现委托viewForZoomingInScrollView:
scrollViewDidEndZooming:withView:atScale:
两个方法,另外 maximumZoomScale和minimumZoomScale两个属性要不一样
几个属性
tracking
当touch后还没有拖动的时候,值是YES,否则NO
zoomBouncing
当内容放大到最大或者最小的时候,值是YES,否则NO
zooming
当正在缩放的时候,值是YES,否则NO
decelerating
当滚动后,手指放开,但是还在继续滚动中,这个时候是 YES,其他是NO
decelerationRate
设置手指放开后的减速率
maximumZoomScale
一个浮点数,表示能放最大的倍数
minimumZoomScale
一个浮点数,表示能缩最小的倍数
pagingEnabled
当值是YES,会自动滚动到subview的边界,默认是NO
scrollEnabled
决定是否可以滚动
delaysContentTouches
是个布尔值,当值是YES的时候,用户触碰开始,scroll view要延迟一会,看看是否用户有意图滚动,假如滚动了,那么捕捉touch-down事件,否则就不捕捉, 假如值是NO,当用户触碰, scroll view会立即触发touchesShouldBegin:withEvent:inContentView:, 默认是YES
canCancelContentTouches
当值是YES的时候,用户触碰后,然后在一定时间内没有移动,scrollView发送tracking events,然后用户移动手指足够长度触发滚动事件,这个时候,scrollView发送了touchesCancelled:withEvent: 到subview,然后scroView开始滚动
假如值是NO,scrollView发送tracking events后,就算用户移动手指,scrollView也不会滚动
contentSize
里面内容的大小,也就是可以滚动的大小,默认是0,没有滚动效果。
showsHorizontalScrollIndicator
滚动时,是否显示水平滚动条
showsVerticalScrollIndicator
滚动时,是否显示垂直滚动条
bounces
默认是yes,就是滚动超过边界,会反弹有反弹回来的效果,假如是 NO,那么滚动到达边界,那么会连忙停止
bouncesZoom
和bounces类似,区别在于,这个效果反映在缩放上面,假如缩放超过最大缩放,那么会反弹效果,假如是NO,则到达最大或者最小的时候,立即停止
directionalLockEnabled
默认是NO, 可以在垂直和水平方向同时运动, 当值是YES, 假如一开始是垂直或者是水平运动,那么接下来会锁定另外一个方向的滚动, 假如一开始是对角方向滚动,则不会禁止某个方向
indicatorStyle
滚动条的样式,基本只是设置颜色,总共3个颜色,默认,黑色的,白色的
scrollIndicatorInsets
设置滚动条的位置
分享到:
相关推荐
### UIScrollView 概述 UIScrollView 是 iOS 开发中用于支持滚动操作的一个强大且灵活的视图控件。在移动设备上,由于屏幕尺寸的限制,直接展示给用户的内容量通常是有限的。当需要展示的内容超过了单个屏幕所能...
在iOS开发中,UIScrollView是一个非常重要的控件,它允许用户在水平或垂直方向滚动查看超出视图边界的内容。本教程将深入讲解如何实现UIScrollView的自适应高度或宽度,以达到内容自动填充的效果。我们将主要使用...
在iOS开发中,UIScrollView是一个非常重要的控件,它允许用户通过滚动来查看超过屏幕大小的内容。在处理触摸事件时,UIScrollView具有独特的机制,使得开发者能够实现丰富的交互效果。本篇文章将深入探讨`...
在iOS开发中,`UIScrollView` 是一个非常重要的控件,它允许用户在内容超过视图范围时进行滚动查看。在本教程中,我们将探讨如何实现一个`UIScrollView` 的左右循环滑动功能,同时具备自动轮播的效果。这个功能通常...
在iOS开发中,`UIScrollView` 和 `UIPageControl` 是两个非常重要的组件,它们常常结合使用来实现类似轮播图或者无限滚动的效果。这个资源"uiscrollView+uipageControl无缝循环可点击"正是关于如何将这两个控件集成...
在iOS开发中,UIScrollView是一个非常重要的控件,它允许用户在内容区域大于视图显示范围时进行滚动浏览。实现轮播效果,通常是指在有限的显示区域内,通过滑动显示一系列图片或视图,达到自动循环播放的效果。这在...
在iOS开发中,UIScrollView是一个非常重要的控件,它允许用户在内容超过屏幕大小时进行滚动浏览。本教程将深入探讨如何实现UIScrollView的自动滚动和手动滚动功能,以便为用户提供更丰富的交互体验。 首先,我们要...
在iOS开发中,`UIScrollView`是一个非常重要的控件,它允许用户在内容超过视图边界时滚动查看。在电商应用中,我们经常看到一种效果,那就是商品推荐或广告轮播图能够实现无限自动循环,这正是`UIScrollView`结合`...
在iOS开发中,UIScrollView是一个非常重要的控件,它允许用户滚动查看超出屏幕范围的内容,比如在UITableView和UICollectionView中。在处理大量数据时,为了优化性能并减少内存消耗,开发者通常会采用复用加载数据的...
在iOS开发中,UIScrollView是一个非常重要的控件,它允许用户在内容超过屏幕尺寸时进行滚动查看。本示例“UIScrollView使用自动布局”旨在演示如何在故事板(Storyboard)环境中利用AutoLayout来设置UIScrollView的...
在iOS开发中,`UIScrollView` 是一个非常重要的控件,它允许用户在内容超过视图显示范围时进行滚动浏览。本教程将详细讲解如何利用`UIScrollView` 实现一个自动轮播的功能,包括调整图片数量和设置轮播间隔时间。这...
在iOS开发中,`UIScrollView` 是一个非常重要的控件,用于展示可以滚动的内容,比如页面、图片等。本文将深入探讨如何通过`UIScrollView`的代理方法实现图片的触摸缩放功能,这对于创建交互式应用,尤其是图像查看器...
在iOS开发中,UIScrollView是一个常用的控件,用于展示可滚动的内容,比如长文本、多张图片等。在本主题“UIScrollview图片截取-放大-缩小”中,我们将探讨如何利用UIScrollView来实现图片的缩放功能以及如何在...
在iOS开发中,`UIScrollView` 是一个非常重要的控件,它允许用户在内容超过视图范围时滚动查看。本教程将深入探讨如何利用`UIScrollView`实现横纵两个方向的多页面布局滚动,这对于创建类似相册、杂志或者长表格的...
在iOS开发中,`UIScrollView` 和 `UITableView` 是两个核心组件,用于实现可滚动内容的显示,例如在应用中展示大量的列表数据。本教程将详细讲解如何在 `UIScrollView`(尤其是 `UITableView`)中实现上拉和下拉刷新...
在iOS开发中,`UIScrollView` 是一个非常重要的组件,它提供了滚动视图的功能,可以包含多个子视图并允许用户在这些视图之间滚动。在实际应用中,我们经常需要实现类似轮播图或者商品展示的效果,这时就需要利用 `...
在这个特定的项目“ios-UIScrollView上添加多个TableView.zip”中,开发者创建了一个示例应用,展示了如何在一个UIScrollView中嵌套多个UITableView,实现了灵活的界面布局和交互。 首先,我们要理解UITableView的...
在iOS开发中,`UIScrollView` 是一个非常重要的控件,它允许用户通过滑动来查看超过屏幕大小的内容。在很多应用场景中,如新闻列表、图片轮播等,我们需要实现一个循环滚动的效果,使得内容看起来是无限循环的。本文...
在iOS开发中,`UIScrollView` 是一个非常重要的控件,用于展示可以滚动的内容,比如图片轮播、页面切换等。这个示例代码展示了如何实现一个带有定时滚动和循环滚动功能的`UIScrollView`,同时结合了`UIPageControl`...