聽語音html
分步閱讀操作系統
一鍵約師傅3d
習慣了使用xib和StoryBoard建立UICollectionView項目工程的夥伴,須要轉換使用純代碼來實現,想避免碰更多的壁,就須要認真 瞭解建立UICollectionView過程了。建立UICollectionView比建立UITableView更加複雜,初始化方式也是相對奇 特。如下是使用純代碼建立UICollectionView的方法。
MAC OS X操做系統::OS X 10.11.5
編譯環境:Xcode 7.3.1
1
建立工程項目和視圖控制器
建立工程項目UICollectionView,新建一個UIViewController。選中工程,右鍵-New File…選擇「Cocoa Touch Class」-Next,給個合理的名稱ViewController,再Next完成。
在AppDelegate.m文件包含#import "ViewController.h"。添加代碼:
UINavigationController *navC = [[UINavigationController alloc]initWithRootViewController:[[ViewController alloc]init]];
self.window.rootViewController = navC;//將navC設置爲根視圖控制器。
修改一下ViewController的顯示樣式,執行編譯,run一下,效果如圖。
2
建立自定義UICollectionViewCell
選中工程,右鍵-New File…選擇「Cocoa Touch Class」-Next,選擇繼承於UICollectionViewCell類,給個合理的名稱CollectionViewCell,再Next完成。
一、自定義所須要的控件,好比UIImageView:
@property(nonatomic ,strong)UIImageView *imgView;
二、初始化控件,在方法- (id)initWithFrame:(CGRect)frame中實現:
self.imgView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 30, 150, 140)];
self.imgView.backgroundColor = [UIColor groupTableViewBackgroundColor];
[self addSubview:self.imgView];
3
實現初始化UICollectionView方法
一、在ViewController.h添加事件代理和數據源代理<UICollectionViewDataSource,UICollectionViewDelegate>。
二、在ViewController.m建立UICollectionView。須要使用UICollectionViewFlowLayout來建立, 使用方法- (instancetype)initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout;若是隻用普通的init方法,是實現不了的。
三、設置flowLayout的屬性。
四、初始化CollectionViewCell和頭部。
4
實現UICollectionView的Delegate、DataSource方法
一、返回Items個數:collectionView: numberOfItemsInSection:
二、返回Sections個數:numberOfSectionsInCollectionView:
三、返回Cell顯示內容:collectionView: cellForItemAtIndexPath:
四、返回頭部尾部顯示內容:collectionView: viewForSupplementaryElementOfKind: atIndexPath:
五、選中時調用的方法:collectionView: didSelectItemAtIndexPath:
5
顯示CollectionView及設置數據源
在viewDidLoad方法內:[self.view addSubview:self.collectionView];
代 碼self.collectionView會自動調用setter、getter方法。即調用- (UICollectionView *)collectionView方法初始化並返回collectionView。而後addSubview:到self.view上。配合廣告欄和定時 器,完成顯示。
END