繁体   English   中英

如何创建不同宽度和高度的平铺照片库?

[英]How could I create a tiled photo gallery of different widths and heights?

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

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

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

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

#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];
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM