最近整理IOS开发关于scrollView的一些细节和技巧

初学者用storyBoard时选中Auto Layout 会自动添加很多约束导致滚动视图不可滚动,最好在开始设置控件之前将滚动视图和图像视图的A L属性禁止掉。

滚动视图实现
self.scrollView.contentSize = self.imageView.image.size;

让图片缩放
采用UIScrollViewDelegate协议并实现代理方法返回须要缩放的内容视图
-(UIView *)viewForZoomingInScrollView: (UIScrollView *)scrollView
{
     return self.imageView;
}

canCencelContentTouches 属性 

如果属性值为YES并且跟踪到手指正触摸到一个内容控件,这时如果用户拖动手指的距离足够产生滚动,那么内容控件将收到一个touchesCancelled:withEvent:消息,而scroll view将这次触摸作为滚动来处理。如果值为NO,一旦content view开始跟踪(tracking==YES),则无论手指是否移动,scrollView都不会滚动。

简单通俗点说,如果为YES,就会等待用户下一步动作,如果用户移动手指到一定距离,就会把这个操作作为滚动来处理并开始滚动,同时发送一个touchesCancelled:withEvent:消息给内容控件,由控件自行处理。如果为NO,就不会等待用户下一步动作,并始终不会触发scrollView的滚动了。


ScrollView的俩个属性 DelaysContentTouches 和 CanCancelCotentTouch  影响 scrollView中添加按钮等控件的事件响应问题 (先触发按钮还是先触发滚动的问题)
假设视图中存在按钮 我在代码中测试实现了下面4种不同组合的效果 1代表设置了DelaysContentTouches属性 2代表设置了 CanCancelContentTouches 属性

    [scrollView setDelaysContentTouches:NO];     1
    [scrollView setCanCancelContentTouches:NO];  2
 设置情况               点击按钮效果               在按钮上拖动         和  在视图中拖动

1、2都不设置        点击按钮延迟高亮       拖动按钮无反应          视图滚动
1设置2 不设置       按钮正常点击               拖动时候触发按钮      不滚动
1不设置 2设置       点击延迟高亮                快速拖动视图滚动      慢速按钮触发
1、2都设置            按钮正常 点击               拖动时候触发按钮       不滚动
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值