关于在UIScrollView上添加UITableView出现的问题【原理】

UIScrollView的几个要点总结:从你的手指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事件不会再发生。

你可以结合这两个属性调调看。

这个文章是在论坛上看到的,记录下来,希望能帮助更多的人。。。。。。

关于在UIScrollView上添加UITableView出现的问题【原理】,码迷,mamicode.com

时间: 2024-10-14 00:16:44

关于在UIScrollView上添加UITableView出现的问题【原理】的相关文章

iOS开发之 UIScrollView上添加多个UICollectionView 的问题

在iOS 开发过程中尤其是类似网易新闻客户端的 App 的开发过程中经常会出现在一个UIScrollView 上添加多个UICollectionView 或者是UITableView 的现象. 但是在UIScrollView 上添加UICollectionView时会出现问题 尤其是添加多个的时候,添加在父视图上的多个 UICollectionView 的代理方法执行顺序会出现倒叙执行的问题. 这里应该是UICollectionView 的机制的问题 因为苹果并不建议在滚动视图上添加滚动视图.如

UIScrollVIew上添加滚动视图

创建Scrollview的代码,简单,省略......... 1.添加定时器 // 添加定时器    self.timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(pageChange) userInfo:nil repeats:YES];    [[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonMod

如何在UIScrollView的xib上添加子控件并添加AutoLayout约束

引言 自从苹果推出了autoLayout之后,作为开发者,深深的体验到了他的便捷之处,再也不用为适配不同屏幕布局UI而烦恼,我们仅仅需要和类关联一个xib文件,想上面放置我们需要的控件xib,并打好其相对于父视图以及同级视图的约束关系,这样我们就做好了不同屏幕的适配.但是奇怪的是UIScrollView上添加子控件,和之前的一样的操作,报的错却很吓人,那是为什么呢? 原因分析 因为UIScrollView想要能滑动的前提是要知道他的ContentSize的大小,我们直接向上面添加约束,他不知道自

iOS 在tableView上添加button导致按钮没有点击效果和不能滑动的问题

[原]iOS 在tableView上添加button导致按钮没有点击效果和不能滑动的问题 2014-10-31阅读202 评论0 转载请注明出处. 今天在调试代码的时候,在tableviewcell上添加button,发现button快速点击的话,是看不出点击效果的,查找资料发现, ios7上UITableViewCell子层容器是UITableViewCellScrollView, ios6的则是UITableViewCellContentView.点击效果应该是被ScrollView的触摸延

scrollview上添加子视图,在第一个视图右滑显示时右滑调用某个方法

1.设置scrollview没有反弹效果 scrollview.bounces = NO; 2.在scrollview上添加很多控制器的view,在滑动到最左侧(第一个)view时,再右滑不在是反弹效果,而是调用某个方法时: 步骤1:重写scrollview类,在scrollview类里有个 -(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 方法 例如 -(BOOL)gestureRecogn

在js版搜索地图上添加标记

由于我们做的是有关于旅游方面的项目,所以涉及到了地图功能.我接到的其中一个任务就是,在地图上显示指定的几个景点,并在地图上加上标记. 我们项目用的是搜狗地图,使用的是js版本.大家有兴趣的话,可以参考搜索地图api以及示例代码. 在地图上添加标记是地图的一个基本功能.这个标记叫做Marker.可以从这里看官网上对于Marker类的介绍. 实现的基本步骤,首先在页面上创建一个地图,然后地图上添加一个marker.你可以对这个marker指定位置.显示内容,在地图上的显隐等.具体请看一下代码: <h

Android控件上添加图片

项目中有一个点赞功能,点赞的小图标添加在点赞列表旁边,在xml里可以进行设置,也可以在代码中进行绘图. 下面是两种方法的设置: 1.xml里:一些控件:button.textView等等里面有个属性是android:drawableLeft 就可以将pic设置到text的左边.good.... 2.代码中: TextView txtlikedList = new TextView(this.getContext()); Drawable drawable= getResources().getD

在地图上添加POI

使用Tangram的Marker, 可以在地图上做各种标记, 效果图: Tangram是通过Marker在地图上添加标记的,Marker分Point, Polyline和Polygon三种, 分别对应点.线.面三种几何体. Tangram使用统一的Marker接口来管理Marker: namespace Tangram { class Map { public: // Add a marker object to the map and return an ID for it; an ID of

在android设备上添加thttpd及CGI

============问题描述============ 我想在android系统上添加一个WEB服务,可以使用pc机上的浏览器对于设备的一些参数进行设置.现在选定 httpd+CGI+Sqlite3.但是不知道怎样将httpd+CGI编译并加载到android系统上.请不吝赐教.谢谢. ============解决方案1============ 请问一下:移动端能使用CGI接口么 ============解决方案2============ 你app上设置设备的参数具体是设置什么参数呀,难道不需