`
beike
  • 浏览: 362888 次
社区版块
存档分类
最新评论

[转贴]UIScrollView 原理

 
阅读更多

UIScrollView 原理



scroll view [color=initial;]原理
在滚动过程当中,其实是在修改原点坐标

当手指触摸后, 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的时候,用户触碰后,然后在一定时间内没有移动,[color=initial;]scrollView
发送tracking events,然后用户移动手指足够长度触发滚动事件,这个时候,[color=initial;]scrollView
发送了touchesCancelled:withEvent: 到subview,然后scroView开始滚动
假如值是NO,scrollView发送tracking events后,就算用户移动手指,[color=initial;]scrollView
也不会滚动

contentSize
里面内容的大小,也就是可以滚动的大小,默认是0,没有滚动效果。

showsHorizontalScrollIndicator
滚动时,是否显示水平滚动条

showsVerticalScrollIndicator
滚动时,是否显示垂直滚动条

bounces
默认是yes,就是滚动超过边界,会反弹有反弹回来的效果,假如是 NO,那么滚动到达边界,那么会连忙停止

bouncesZoom
和bounces类似,区别在于,这个效果反映在缩放上面,假如缩放超过最大缩放,那么会反弹效果,假如是NO,则到达最大或者最小的时候,立即停止

directionalLockEnabled
默认是NO, 可以在垂直和水平方向同时运动, 当值是YES, 假如一开始是垂直或者是水平运动,那么接下来会锁定另外一个方向的滚动, 假如一开始是对角方向滚动,则不会禁止某个方向

indicatorStyle
滚动条的样式,基本只是设置颜色,总共3个颜色,默认,黑色的,白色的

scrollIndicatorInsets
设置滚动条的位置

分享到:
评论

相关推荐

    UIScrollView 原理

    ### UIScrollView原理详解 在iOS应用开发中,UIScrollView是极为常用的一个控件,它允许开发者创建一个可以滚动的内容区域。UIScrollView提供了丰富的特性和方法,能够帮助我们处理复杂的界面布局与交互需求。下面...

    UIScrollView、UIScrollView基本用法、UIScrollView详解

    ### UIScrollView 概述 UIScrollView 是 iOS 开发中用于支持滚动操作的一个强大且灵活的视图控件。在移动设备上,由于屏幕尺寸的限制,直接展示给用户的内容量通常是有限的。当需要展示的内容超过了单个屏幕所能...

    iOS实现UIScrollView的无限轮播功能(原理)详解

    总之,实现iOS中的UIScrollView无限轮播功能需要理解ScrollView的工作原理,掌握分页滚动、内容尺寸设置、滚动事件监听以及手势处理等技术。通过这些技术的综合运用,我们可以创建出用户体验良好的轮播组件。

    ios UIScrollView响应touch事件

    在iOS开发中,UIScrollView是一个非常重要的控件,它允许用户通过滚动来查看超过屏幕大小的内容。在处理触摸事件时,UIScrollView具有独特的机制,使得开发者能够实现丰富的交互效果。本篇文章将深入探讨`...

    UIScrollView自适应高度或宽度

    - 对于水平滚动的UIScrollView,自适应宽度的实现原理与自适应高度类似。只需确保所有子视图的宽度总和大于或等于ScrollView的宽度,同时设置适当的约束,使得ScrollView可以根据内容宽度自动调整自身大小。 - ...

    UISCrollView+UITableView

    在iOS开发中,`UISCrollView`和`UITableView`是两种非常重要的视图控件,它们被广泛用于实现各种滚动界面。`UISCrollView`可以显示比屏幕更大的内容,用户可以通过滚动来查看所有内容,而`UITableView`则主要用于...

    UIScrollView

    首先,我们要理解UIScrollView的基本原理。它是一个可以容纳比屏幕显示范围更大的内容的视图,并允许用户通过手势进行上下左右的滚动。在UIScrollView内部,你可以添加多个子视图,而不仅仅是单个图片。通过设置...

    UIScrollView使用自动布局

    在iOS开发中,UIScrollView是一个非常重要的控件,它允许用户在内容超过屏幕尺寸时进行滚动查看。本示例“UIScrollView使用自动布局”旨在演示如何在故事板(Storyboard)环境中利用AutoLayout来设置UIScrollView的...

    UIScrollView 无限自动循环

    在iOS开发中,`UIScrollView`是一个非常重要的控件,它允许用户在内容超过视图边界时滚动查看。在电商应用中,我们经常看到一种效果,那就是商品推荐或广告轮播图能够实现无限自动循环,这正是`UIScrollView`结合`...

    UIScrollview图片截取-放大-缩小

    首先,我们来了解UIScrollView的基本原理。它提供了水平和垂直方向的滚动,通过设置contentSize属性,我们可以定义ScrollView内部的内容大小。而通过设置scrollView的delegate,我们可以监听用户的滚动行为,从而...

    UIScrollView自动轮播图

    在iOS开发中,`UIScrollView` 是一个非常重要的控件,它允许用户在内容超过视图显示范围时进行滚动浏览。本教程将详细讲解如何利用`UIScrollView` 实现一个自动轮播的功能,包括调整图片数量和设置轮播间隔时间。这...

    UIScrollView Demo代码

    在iOS开发中,UIScrollView是一个非常重要的控件,它允许用户在水平或垂直方向上滚动内容,展示超过屏幕大小的信息。这个"UIScrollView Demo"代码示例是开发者为了展示如何有效地使用UIScrollView来实现滚动视图功能...

    iOS:UIScrollView实现轮播

    在iOS开发中,UIScrollView是一个非常重要的控件,它允许用户在内容区域大于视图显示范围时进行滚动浏览。实现轮播效果,通常是指在有限的显示区域内,通过滑动显示一系列图片或视图,达到自动循环播放的效果。这在...

    UIScrollView无限循环

    首先,我们要理解 `UIScrollView` 的基本工作原理。`UIScrollView` 内容区域可以比其实际显示区域大,用户可以通过滑动来查看超出可视范围的内容。为了实现无限循环,我们需要做的是在内容的开头和结尾添加重复的...

    UIScrollView分页循环滑动

    在iOS开发中,`UIScrollView` 是一个非常重要的组件,它提供了滚动视图的功能,可以包含多个子视图并允许用户在这些视图之间滚动。在实际应用中,我们经常需要实现类似轮播图或者商品展示的效果,这时就需要利用 `...

    UIScrollView的横纵多页显示

    首先,理解`UIScrollView`的基本工作原理是关键。`UIScrollView`的内容区域可以比其实际显示区域大,这样就可以通过手势滑动查看超出部分的内容。为了实现两方向的滚动,我们需要设置`UIScrollView`的`contentSize`...

    UIScrollView 用法详解

    在iOS开发中,UIScrollView是一个非常重要的控件,它允许用户在水平或垂直方向滚动内容,提供了无限滚动、页面滚动等功能,极大地丰富了用户的交互体验。本文将深入解析UIScrollView的使用方法,包括基本设置、内容...

    UIScrollView简单实例

    【UIScrollView简单实例】是一个针对初学者的Objective-C编程教程,主要涵盖了如何在iOS应用中实现一个基本的滚动视图功能。这个实例通过使用UIScrollView和UIPageControl,为用户提供了直观的页面滑动体验。 首先...

    UIScrollView实现图片无限滚动Demo

    在iOS开发中,`UIScrollView` 是一个非常重要的控件,它允许用户在内容超过视图范围时进行滚动查看。在本示例项目“UIScrollView实现图片无限滚动Demo”中,开发者利用`UIScrollView` 和其相关特性,创建了一个可以...

    一个循环滚动的UIScrollView

    首先,我们需要理解`UIScrollView`的基本工作原理。`UIScrollView`有一个contentSize属性,它定义了可滚动区域的大小。当contentSize大于实际视图的frame大小时,用户可以通过滑动来查看超出部分的内容。我们可以...

Global site tag (gtag.js) - Google Analytics