瀑布流实现原理

在视图中添加多个视图,当划动其中一个视图时,调用协议方法让其他scrollView也跟着划动.

//瀑布流的核心代码:当一个表视图偏移时,设置另一个表视图也偏移同样的坐标

//在滚动内容时调用此方法(有任何的内容偏移都会调用)

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

{

if(scrollView==_tableView1){

CGPoint pt=_tableView1.contentOffset;

[_tableView2 setContentOffset:pt];

}

else{

CGPoint pt=_tableView2.contentOffset;

[_tableView1 setContentOffset:pt];

}

}

其他scrollView的代理方法<UIScrollViewDelegate>

// 发生任何偏移时

- (void)scrollViewDidScroll:(UIScrollView *)scrollView;

// 任何比例缩放

- (void)scrollViewDidZoom:(UIScrollView *)scrollView NS_AVAILABLE_IOS(3_2);

// 开始拖动时调用 (也可能在移动一段时间或距离后调用)

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;

// 手指将要抬起停止拖动时调用

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset NS_AVAILABLE_IOS(5_0);

// 手指抬起停止拖动时调用,抬起后视图还会移动一段距离,慢慢减速到停止

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;

//手指将要开始拖动时调用

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView;

//停止拖动时调用

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;

//结束动画时调用

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;

//返回一个放大的视图

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;

//将要开始缩放视图时调用

- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view NS_AVAILABLE_IOS(3_2);

//结束缩放时调用

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale;

//当点击status bar时是否将视图滚到顶部,默认是YES

- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;

//滚到顶部时调用,如果已经在顶部,可能会马上调用

- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;

时间: 2024-08-19 12:35:25

瀑布流实现原理的相关文章

jquery实现无限滚动瀑布流实现原理

现在类似于pinterest这类的表现效果很火,其实我比较中意的是他的布局效果,而不是那种瀑布流. 虽然我不是特别喜欢这种瀑布流的表现样式,但是还是写了几篇关于无限滚动瀑布流效果的文章,Infinite scroll+Masonry=无限滚动瀑布流,infinite-scroll-jquery滚动条(下拉)加载数据插件之类的文章.可能是我表达描述不是很详细清楚,所以好多朋友看了不是很清楚,并发信给我求解释.所以有了今天这篇文章. 其实早在:十几款jquery无限滚动插件这 篇文章中我就提到过这种

瀑布流的原理

以前写过瀑布流,但对于其中某些概念和一些细节一直没理清,导致写代码时一直心存疑虑.没法用准确的代码来描述. 仅仅停留在我的代码能运行,但出了问题不好查. 昨天花近2小时理清了. var wuyu=1;...function roll(){ //scrollTop “卷”起来的高度值 var sTop = document.body.scrollTop || document.documentElement.scrollTop; //获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 var c

iOS横向瀑布流的封装

前段时间, 做一个羡慕, 需要使用到瀑布流! 说道瀑布流, 或许大家都不陌生, 瀑布流的实现也有很多种! 从scrollView 到 tableView 书写的瀑布流, 然后再到2012年iOS6 苹果API 新加进的collectionView进行的瀑布流封装! 确实, 不论是写起来还是用起来都要方便很多! 由于项目开发中需要使用到很像瀑布流, 本来想着懒省事, 直接搜一个第三方, 可搜了一会, 并没有搜到有关横向瀑布流的第三方! 于是就决定自己写一个吧! 里边用到的就是UIColleciti

Android开发--瀑布流效果的实现

对手机App的瀑布流效果一直有所耳闻,却从未自己亲自动手实践,趁着这几天还有些时间,做了些研究,也参考了网络上很多大神的博客,终于写出来自己的瀑布流效果了,先上一图. 正如图所示:瀑布流的原理很简单,就是自己重新写一个ScrollView,添加一个横向排布的LinearLayout,再向这个横向的LinearLayout中添加三个纵向排布的LinearLayout,接着我们就可以向每个一LinearLayout中依次添加图片.原理很容易理解,但实践起来也很困难,需要注意的问题也很多: 1.为了防

AJAX异步实现简单的瀑布流

传统瀑布流布局ul-li,需要先设定显示几列,每列是一个li,需要左浮动并指定宽度,li里面的布局也要先布局好,主要是要定宽,高度自动:然后通过ajax异步,从数据库中得到数据,遍历后将数据插入最矮的li中 HTML中的代码: <!--定义JS中需要的数据--><script type="text/javascript">var ajaxHandle='<{:U("Index/Typeshow/ajax","",&q

Android瀑布流,解决oom

这是一个Android瀑布流的实现demo. 瀑布流我的实现是定义三个linearlayout,然后向里面addView(),如果多了会出现oom异常,所以做了一些处理. 1.lrucache缓存 2.只显示当前屏的图片 3.滑动过程中不加载图片 4.大图缩放成小图 直接看代码: PhotoFallScrollView.java主类 自定义的ScrollView. package com.pangzaifei.falls; import java.io.BufferedInputStream;

浅谈瀑布流

瀑布流又称瀑布流式布局,是比较流行的一种网站页面布局方式.视觉表现为参差不齐的多栏布局,最早采用此布局的是网站是 Pinterest,后逐渐在国内流行. 瀑布流布局效果 即多行等宽元素排列,后面的元素依次添加到其后,等宽不等高,根据图片原比例缩放直至宽度达到我们的要求,依次按照规则放入指定位置. 那么规则是什么呢? 下面通过图解来分析一下瀑布流的算法. 图解瀑布流算法 当第一排排满足够多的等宽图片时(如下图情况),自然而然的考虑到之后放置的图片会往下面排放. 那么第六张图片,放置在什么位置呢?是

JS实现动态瀑布流及放大切换图片效果(js案例)

整理了一下当时学js写的一些案例,再次体验了一把用原生JS实现动态瀑布流效果的乐趣,现在把它整理出来,需要的小伙伴可以参考一下. 该案例主要是用HTML+CSS控制样式,通过JS实现全局瀑布流以及点击图片放大.上下切换效果.HTML布局写的很简单,图片加载主要是在JS中通过访问自定义的JSON字符串来实现.动态瀑布流的原理简单理解就是把新需要加载的图片放在上一排总高度最小的图片或模块下面,实现参差不齐的多栏布局效果.具体效果如下: 做这个案例我用了之前自己封装的框架,所以小伙伴需要到我的另一篇文

web前端入门到实战:纯CSS瀑布流与JS瀑布流

瀑布流 又称瀑布流式布局,是比较流行的一种网站页面布局方式.即多行等宽元素排列,后面的元素依次添加到其后,等宽不等高,根据图片原比例缩放直至宽度达到我们的要求,依次按照规则放入指定位置. 为什么使用瀑布流 瀑布流布局在我们现在的前端页面中经常会用的到,它可以有效的降低页面的复杂度,节省很多的空间,对于整个页面不需要太多的操作,只需要下拉就可以浏览用户需要看到的数据:并且,在当前这个APP至上的时代,瀑布流可以提供很好的用户体验,通过结合下拉刷新,上拉加载进行数据的懒加载等操作,对于用户的体验感来