UIScrollView的仔细的研究API的记录

来源:互联网 发布:daogrs知乎 编辑:程序博客网 时间:2024/05/22 11:39

contentInset 出现的区域,比如说开始设置的时屏幕大小,但是如果你设置这个,真实显示的以这个为准

directionalLockEnabled 默认no,意思是说在图片可以上下左右直接滑动(如果scrollview允许的情况下),如果为yes,图片只能在上下或者左右滑动。

bounces 是否反弹

alwaysBounceVertical alwaysBounceHorizontal 两个方向的反弹
表默认的垂直方法为yes(有反弹),水平方向为no
scrollview默认都是no。
这两个属性使用的大前提事bounces必须为yes

scrollEnabled 控制scrollview是否能滚动

showsHorizontalScrollIndicator
showsVerticalScrollIndicator 是否显示边上移动线

scrollIndicatorInsets 滑动线的位置自己定义

indicatorStyle 滚动条的样式(白色,黑色)

decelerationRate 速率变慢

  • (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated; 让scrollview滑动到rect。用在想让控件点击一下显示完全控件思想(要想生效, contentSize的x,y都不能为0)

flashScrollIndicators 这是一个方法,闪一下滚动条,可以看见是否还能滚动

tracking 是一个只读的书行,看手指是否在触摸屏幕。如果在触摸返回yes,如果没有返回no

dragging 只读,看手指是否在拖拽

decelerating 只读,是否在减速 只有手指离开屏幕时(减速)才会返回yes,只要手指还在作用屏幕,会一直返回no

delaysContentTouches 很好的一个东西。系统默认的yes 意思是如果你在滑动,那么触摸事件只会传递给scrollview。在滑动中你去点击scrollview的按钮不会响应按钮的方法。 如果设置为no,触摸事件会给你手指触摸到的的控件,如果是不能响应点击手势的控件没啥区别,如果控件可以响应手势那触摸的事件就会只传给你点着的那个控件。

canCancelContentTouches 没看懂??????????????
这个是别人的见解,明天再看这个canCancelContentTouches属性

从你的手指touch屏幕开始,scrollView开始一个timer,如果:1.  150ms内如果你的手指没有任何动作,消息就会传给subView。2.  150ms内手指有明显的滑动(一个swipe动作),scrollView就会滚动,消息不会传给subView,这里就是产生问题二的原因。3. 150ms内手指没有滑动,scrollView将消息传给subView,但是之后手指开始滑动,scrollView传送touchesCancelled消息给subView,然后开始滚动。观察下tableView的情况,你先按住一个cell,cell开始高亮,手不要放开,开始滑动,tableView开始滚动,高亮取消。delaysContentTouches的作用:这个标志默认是YES,使用上面的150ms的timer,如果设置为NO,touch事件立即传递给subView,不会有150ms的等待。cancelsTouches的作用:这个标准默认为YES,如果设置为NO,这消息一旦传递给subView,这scroll事件不会再发生。

bouncesZoom 缩放的时候是否会反弹

zooming 只读 如果在缩放返回真

zoomBouncing 只读 判断是否正在进行缩放反弹

scrollsToTop 点击屏幕顶部控件回到顶部

keyboardDismissMode scrollview滑动的时候键盘的状态,有几种选择

键盘的三种状态
UIScrollViewKeyboardDismissModeNone,不消失
UIScrollViewKeyboardDismissModeOnDrag, 当拖拽scrollview时消失
UIScrollViewKeyboardDismissModeInteractive 不好解释,如果自己能实验一下最好,大概就是下拉的时候如果到边了,开始bounces了,键盘会随着下去

0 0