测试已测试 | ✓ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布最后发布 | 2015年7月 |
由Jonathan Crooke维护。
依赖关系 | |
Aspect | ~> 1.4.1 |
ObjcAssociatedObjectHelpers | ~> 2.0.0 |
想在UICollectionView
为空状态时显示任意的UIView
,并以松散耦合的方式。无需再寻找其他方法。
导入"UICollectionView+EmptyState.h"
并简单地设置您的UICollectionView
实例上的属性emptyState_view
。我们完成剩下的工作。请注意,您的视图将被调整大小以覆盖UICollectionView
,因此请务必事先进行适当配置。
@property (nonatomic, strong) UIView *emptyState_view;
设置您的覆盖视图。@property (nonatomic, assign) BOOL emptyState_shouldRespectSectionHeader;
当与UICollectionViewFlowLayout
一起使用时,将此属性设置为YES
会导致覆盖视图放置在第一个节的头部视图下方。如果第一个节的头部包含以某种方式影响集合内容的控件,这将非常有用。我们不希望阻止这些控件。示例应用程序在其头部视图中有开关以展示节头部将可用于用户交互。@property (nonatomic, assign) NSTimeInterval emptyState_showAnimationDuration;
,@property (nonatomic, assign) NSTimeInterval emptyState_hideAnimationDuration;
可以通过这些属性使用淡入淡出效果来显示和隐藏覆盖视图。将其设置为0可取消动画效果。UICollectionViewEmptyStateDelegate
协议来进一步自定义视图在被添加和删除时的行为。setEmptyStateImageViewWithImage:
便利方法创建了一个包含提供图像的UIImageView
,将其设置为emptyState_view
,并返回它以进行任何需要的进一步自定义。shouldNilViewIfNotRequired
标志,以自动在下一个布局周期中没有添加覆盖视图时将空的视图设置为nil。-setTranslatesAutoresizingMaskIntoConstraints:
的调用,允许自动布局。UICollectionView
实例进行swizzling。will~
委派方法现在在动画块内调用。contentInsets
,以实现更好的iOS 7兼容性。emptyState_shouldRespectSectionHeader
。libextobjc
的变化。emptyState_view
的动画键,以防止多次嵌套添加/删除操作,通常运行得更光滑。emptyState_showDelay
和 emptyState_hideDelay
属性,以在显示/隐藏覆盖层时添加延迟。UICollectionViewEmptyStateDelegate
协议。setEmptyStateImageViewWithImage:
。祝您玩得开心!