一个可以不进行任何过渡仅用弹簧动画扩展一个项目的 UICollectionViewLayout,支持任何尺寸的单元格。
LXMExpandLayout 是模仿 @DaidoujiChen 下的DaiExpandCollectionView的一系列改进,使其更加容易使用。
它支持任何尺寸的单元格,您可以使用它像其他任何 UICollectionViewFlowLayout 一样,只需设置 itemSize 即可。
现在您可以通过拖动项目来重新排序它,请记住,您必须实现代理方法以确保顺序已改变。
它也很好地与自动布局配合使用,因为您只需设置项目大小,您可能会在不同的设备上看到不同的 UI,例如
将 itemSize 设置为 {80, 100},您将在 iPhone5 上看到一行中有三个项目,但在 iPhone6 上您将看到四个。
在对 LXMExpandLayout 有一些限制,您设置的项目大小,但是您必须确保每一行至少有三个项目,否则它将不会工作……
版本 0.0.3,修复了一些错误,支持拖动重新排序
灵感来自RACollectionViewReorderableTripletLayout by ra1028
版本 0.0.2,支持 sectionInsect
现在您可以设置 LXMExpandLayout 的 sectionInsect
,并且它会像 UICollectionViewFlowLayout 一样工作
1、将 LXMExpandLayout.h
,LXMExpandLayout.m
,UICollectionView+LXMExpandLayout.h
,UICollectionView+LXMExpandLayout.m
添加到您项目
1、将 #import "LXMExpandLayout.h"
添加到您的 ViewController
2、初始化一个 LXMExpandLayout 并将其设置给 collectionView,如下所示:
LXMExpandLayout *expandLayout = [[LXMExpandLayout alloc] init];
expandLayout.itemSize = CGSizeMake(80, 100);
self.collectionView.collectionViewLayout = expandLayout;
好了,一切都设置好了。
3、如果您想更改选中项,请调用此方法
[self.collectionView expandItemAtIndexPath:indexPath animated:YES];
1、支持 addItem,deleteItem 等其他操作
2、支持多个分区
如果您有任何问题或建议,请欢迎提出问题和拉取请求。
LXMExpandLayout遵循MIT许可协议。有关更多信息,请参阅LICENSE文件。