#import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @property (strong, nonatomic) NSMutableArray *letterArray; @end AppDelegate.h #import "AppDelegate.h&qu…
from:   http://www.tuicool.com/articles/vuyIriN 当我们使用系统自带的UICollectionViewFlowLayout无法实现我们的布局时,我们就可以考虑自定义layout. 所以,了解并学习一下自定义Layout是很有必要. 其实可以分三个步骤: 覆写prepareLayout方法,并在里面事先就计算好必要的布局信息并存储起来. 基于prepareLayout方法中的布局信息,使用collectionViewContentSize方法返回UIC…
#import <UIKit/UIKit.h> @interface WQViewController : UIViewController - (id)initWithFrame:(CGRect)frame; @end #import "WQViewController.h" #import "WQCollectionViewController.h" #import "WQCollectionViewCircleLayout.h"…
from:   http://www.tuicool.com/articles/vuyIriN 当我们使用系统自带的UICollectionViewFlowLayout无法实现我们的布局时,我们就可以考虑自定义layout. 所以,了解并学习一下自定义Layout是很有必要. 其实可以分三个步骤: 覆写prepareLayout方法,并在里面事先就计算好必要的布局信息并存储起来. 基于prepareLayout方法中的布局信息,使用collectionViewContentSize方法返回UIC…
本来我是不准备写这篇文章的,我实在想不出有什么样奇怪的理由,会去继承ViewGroup然后自定义一个布局,大概是我的项目经验还不够吧,想了好久,想到了这样一个需求: 需求 如图:在项目中经常有一个这样的需求,一个View靠左,另一个View靠右,这样的布局方式使用频率非常高,通常使用的是RelativeLayout,但是每次设置Align属性真的好烦,现在就来实现一下这样的布局,解决这个问题. 思路 其实具体实现一个布局,还是可以分为两种: 1.继承一个具体的Layout,这样可以省去很多的代码…
写一个类继承UICollectionViewLayout,这个类需要提供一个数组来标识各个cell的属性信息,包括位置,size大小,返回一个UICollectionViewLayoutAttributes 数组,UICollectionView根据这个数组信息来确定各个cell的位置.size大小等属性. 例如自定义类: @interface MyCollectionViewLayout : UICollectionViewLayout 在此类中定义一个实例变量_attributeArray数…
最近做合创共美的商城项目,遇到发货地址的不配送地区,是做一个弹出框,弹出框的布局是根据地名字数长短不齐的标签. 本来也可以用tableview来做的.只不过多建几个tableviewcell就可以了.因为除了需要动画效果,所有的collection view都可以用tableview来做. 但是觉得还是需要做一下.因为以前弄过的都很模糊了. 所以先下了个demo.苹果开发者上面的sample demo-CollectionViewTransition:     这是个带动画效果的. collec…
上篇博客的实例是自带的UICollectionViewDelegateFlowLayout布局基础上来做的Demo, 详情请看<iOS开发之窥探UICollectionViewController(二) --详解CollectionView各种回调>.UICollectionView之所以强大,是因为其具有自定义功能,这一自定义就不得了啦,自由度非常大,定制的高,所以功能也是灰常强大的.本篇博客就不使用自带的流式布局了,我们要自定义一个瀑布流.自定义的瀑布流可以配置其参数: 每个Cell的边距…
前几天在gitHub看到个不错的效果,就是DaiExpandCollectionView,效果如图:   所以赶紧下下来源码看看他怎么实现的,打开源码看了半天,发现他没写什么关于动画的代码啊... 经高人指点,才明白原来他是利用了UICollectionViewFlowLayout的隐式动画!   所谓隐式动画,就是系统自带的动画了,其实也不是什么高大上的东西,关键是我怎么就没想到可以这么用!   研究了半天人家的源码,基本了解了他实现的思路,然后发现他的这个库用起来比较不方便,需要继承他的co…
前一段时间因为工作需要实现了一个可以签到的日历,来记录一下实现的思路 效果如图:   这里的基本需求是: 1,显示用户某个月的签到情况,已经签到的日子打个圈,没有签到且在某个时间范围内的可以签到,其他的只能看. 2,服务器只会返回这个月用户签到日子的时间戳数组和可以签到的时间范围,剩下的日子就是没有签到的. 3,显示跟普通的日历一样即可,上面是“一二三四五六日”,下面是对应的日期. 4,可以切换到当前日期之前的月份.   根据需求,基本思路是: 用一个pageViewController作为基本…