使用第三方 : QuiltView (可在cocoapods上找到)
.h 文件
#import <UIKit/UIKit.h> #import "TMQuiltView.h" #import "TMPhotoQuiltViewCell.h" @interface SelfHomeViewController : UIViewController <TMQuiltViewDataSource,TMQuiltViewDelegate> { } @property(strong,nonatomic)TMQuiltView *quiltView; @property(strong,nonatomic)NSArray *p_w_picpaths; @end
.m 文件
主要代码:
#define kNumberOfCells 50 - (void)dealloc { [_quiltView release]; _quiltView = nil; [_p_w_picpaths release]; _p_w_picpaths = nil; [super dealloc]; } - (void)viewDidLoad { [super viewDidLoad]; _quiltView = [[TMQuiltView alloc] initWithFrame:self.view.bounds]; _quiltView.dataSource = self; _quiltView.delegate = self; [self.view addSubview:_quiltView]; [_quiltView reloadData]; } #pragma mark - QuiltViewControllerDataSource - (NSArray *)p_w_picpaths { if (!_p_w_picpaths) { NSMutableArray *p_w_picpathNames = [NSMutableArray array]; for(int i = 0; i < kNumberOfCells; i++) { [p_w_picpathNames addObject:[NSString stringWithFormat:@"%d.jpeg", i % 10 + 1]]; } _p_w_picpaths = [p_w_picpathNames retain]; } return _p_w_picpaths; } - (UIImage *)p_w_picpathAtIndexPath:(NSIndexPath *)indexPath { return [UIImage p_w_picpathNamed:[self.p_w_picpaths objectAtIndex:indexPath.row]]; } - (NSInteger)quiltViewNumberOfCells:(TMQuiltView *)TMQuiltView { return [self.p_w_picpaths count]; } - (TMQuiltViewCell *)quiltView:(TMQuiltView *)quiltView cellAtIndexPath:(NSIndexPath *)indexPath { TMPhotoQuiltViewCell *cell = (TMPhotoQuiltViewCell *)[quiltView dequeueReusableCellWithReuseIdentifier:@"PhotoCell"]; if (!cell) { cell = [[[TMPhotoQuiltViewCell alloc] initWithReuseIdentifier:@"PhotoCell"] autorelease]; } cell.photoView.p_w_picpath = [self p_w_picpathAtIndexPath:indexPath]; cell.titleLabel.text = [NSString stringWithFormat:@"%d", indexPath.row + 1]; return cell; } #pragma mark - TMQuiltViewDelegate - (NSInteger)quiltViewNumberOfColumns:(TMQuiltView *)quiltView { return 3; } - (CGFloat)quiltView:(TMQuiltView *)quiltView heightForCellAtIndexPath:(NSIndexPath *)indexPath { return [self p_w_picpathAtIndexPath:indexPath].size.height / [self quiltViewNumberOfColumns:quiltView]; }