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

标签 objective-c ios ipad user-interface ios5

我一直在寻找为 iPad 应用程序创建照片库的方法,其中的图像具有不同的宽度和高度。我不想裁剪它们以适应 GridView ,而是想创建一个“马赛克”效果,如 Pinterest 中所示。和 Jetsetter应用程序(请参阅引用图片链接)

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

最佳答案

对于 Pinterest 的可变高度,最简单的方法是为每一列使用 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];
    }
}

关于objective-c - 如何创建不同宽度和高度的平铺照片库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10024383/

相关文章:

objective-c - 如何用 doxygen 记录 Objective-C block ?

ios - UIview.hidden 不会消失,而是隐藏在另一个 View 后面

ios - 如何使用照片框架获取照片的时间戳?

ipad - 当应用程序从 Xcode 停止时不调用 applicationWillTerminate

ios - iPad uiimagepickercontroller 只有前置摄像头

ios - 在 UIImagePickerController 中选择图像后的 MBProgressHUD

ios - 显示在单独标签上键入的单个字符?

ios - 仅当所有文本字段均已验证成功时才启用登录按钮

ios - 为什么我不能将颜色数组中的颜色随机设置到 tableViewCells?

php - MySql 类似运算符,用于选择在移动设备中无法正常工作的所有记录