使用第三方 : QuiltView  (可在cocoapods上找到)

.h 文件

#import 
#import "TMQuiltView.h"#import "TMPhotoQuiltViewCell.h"@interface SelfHomeViewController : UIViewController 
 {}@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];}