2

我一直在寻找为 iPad 应用程序创建一个照片库,其中的图像具有不同的宽度和高度。我不想裁剪它们以适应网格视图,而是创建一个“马赛克”效果,如PinterestJetsetter应用程序中所见(参见参考图像链接)

知道我可以从哪里开始创建这样的效果吗?

4

1 回答 1

1

对于可变高度 a la Pinterest,最简单的方法是UITableView对每一列使用 a,因为它已经提供了使用UITableViewRowAnimations 插入/删除图像的机制。如果图像的高度是已知的,则更容易,因为UITableView在加载单元格之前会要求它。但如果不是,您可以做的是将每个单元按顺序(头部或尾部)插入最短的UITableView。加载图像,必要时调整大小。磁盘缓存高度,因此您不必为每个单元格加载图像。我已经以这种方式成功实现了它。

附录:使用 3 个(或更多)UITableViews 的部分技巧是手动同步滚动。否则他们会自行滚动:

#pragma mark - UIScrollView stuff
- (void)scrollViewDidScroll:(UIScrollView *)inScrollView {
    // Sync the scrolling of all table views
    CGPoint offset = inScrollView.contentOffset;

    for (NSInteger i = 0; i < self.tableViews.count; i++) {
        PLAlbumTableView *tableView = [self.tableViews objectAtIndex:i];
        if (tableView != inScrollView)
            tableView.contentOffset = offset;

    }
}

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)inScrollView {
    // Sync the scrolling of all table views
    for (NSInteger i = 0; i < self.tableViews.count; i++) {
        PLAlbumTableView *tableView = [self.tableViews objectAtIndex:i];
        if (tableView != inScrollView)
            [tableView setContentOffset:tableView.contentOffset animated:NO];
    }
}
于 2012-04-29T03:03:39.393 回答