#import <UIKit/UIViewController.h>
#import <UIKit/UICollectionView.h>
#import <UIKit/UIKitDefines.h>
NS_ASSUME_NONNULL_BEGIN
@class UICollectionViewLayout;
@class UICollectionViewController;
//本身实现UICollectionViewDelegate,UICollectionViewDataSource
NS_CLASS_AVAILABLE_IOS(6_0) @interface UICollectionViewController : UIViewController <UICollectionViewDelegate, UICollectionViewDataSource>
//使用一个UICollectionViewLayout初始化界面
- (instancetype)initWithCollectionViewLayout:(UICollectionViewLayout *)layout NS_DESIGNATED_INITIALIZER;
-
//从nib中获取界面
- (instancetype)initWithNibName:(nullable NSString *)nibNameOrNil bundle:
(nullable NSBundle *)nibBundleOrNil NS_DESIGNATED_INITIALIZER;
//从stordBoard中获取界面
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER;
//自带一个collectionView 但是self.view并不是collectionView
@property (nullable, nonatomic, strong) __kindof UICollectionView *collectionView;
//默认为yes,当viewWillAppear的时候所有选择的情况清除
//但是当useLayoutToLayoutNavigationTransitions为yes时失效。
@property (nonatomic) BOOL clearsSelectionOnViewWillAppear;
/*为了使布局到布局的转场动画工作,navigation controller 的 root view controller
必须是一个 useLayoutToLayoutNavigationTransitions 设置为 NO 的 collection view
controller。当另一个 useLayoutToLayoutNavigationTransitions 设置为 YES 的
UICollectionViewController 实例被 push 到根视图控制器之上时,navigation controller 会用布局转场动画来
代替标准的 push 转场动画。这里要注意一个重要的细节,根视图
控制器的 collection view 实例被回收用于在导航栈上 push 进来的 collection 控制器中,
如果你试图在 viewDidLoad 之类的方法中中设置 collection view 属性, 它们将不会有任何
反应,你也不会收到任何警告。*/
@property (nonatomic, assign) BOOL useLayoutToLayoutNavigationTransitions NS_AVAILABLE_IOS(7_0);
//只读,自定义布局
@property (nonatomic, readonly) UICollectionViewLayout *collectionViewLayout NS_AVAILABLE_IOS(7_0);
//默认为yes,允许系统级别的从新排序,如果重写moveItemAtIndexPath则会进行手动排序
@property (nonatomic) BOOL installsStandardGestureForInteractiveMovement NS_AVAILABLE_IOS(9_0);
@end
NS_ASSUME_NONNULL_END
网友评论