【问题标题】:Scroll view with dynamically created thumbnails on iPhone and iPad在 iPhone 和 iPad 上使用动态创建的缩略图滚动视图
【发布时间】:2012-11-22 10:38:46
【问题描述】:

我需要一个长的可滚动视图,每行有 2 个缩略图(壁纸)。

每个缩略图都有一个共享和下载照片的按钮,当您单击缩略图时,它会显示全尺寸壁纸。所以我正在考虑制作一个包含缩略图和两个按钮的自定义视图 (200x200),并根据服务器上的壁纸数量动态地将它们添加到滚动视图中。

类似这样的:

NSUInteger i;
int xCoord=0;
int yCoord=0;
int thumbnailWidth=200;
int thumbnailHeight=200;
int buffer = 10;
for (i = 1; i <= [items count]; i++)
{
    UIView *aView = [[ThumbnailView alloc] initWithThumnailAtIndex: i ];
    aView.frame     = CGRectMake(xCoord, yCoord, thumbnailWidth, thumbnailHeight );
    [scrollView addSubview:aView];

    xCoord += thumbnailWidth + buffer;
    yCoord += thumbnailHeight + buffer;
}
[scrollView setContentSize:CGSizeMake(700, yCoord)];

您认为这是一个好方法吗? 另外,如果滚动视图中有很多缩略图,我将如何处理缩略图的延迟加载?

【问题讨论】:

  • 为什么不使用表格视图?听起来非常适合这个用例。如果您只为 iOS6+ 进行部署,您甚至可以使用集合视图控制器。
  • 它必须兼容 iOS 5。如何在一个 tableview 行中显示 2 个缩略图?
  • 在table view cell的contentView中添加两个UIImageViews。我认为,Apple 的照片应用程序中的照片滚动视图是一个表格视图。
  • 但我需要在每个单元格中使用两个 UIView(每个视图都有图像和两个按钮)
  • 所以?我已经完成了带有更多子视图的表格视图单元格。

标签: iphone ios ipad uiscrollview thumbnails


【解决方案1】:

我建议您将 UITableView 与自定义 UITableViewCell 实现一起使用。 tableview 将自动处理单元格的回收,因此您无需担心性能。

您可以在视图初始化期间预加载所有资产,然后在 tableview 的数据源中简单地使用它们。

【讨论】:

【解决方案2】:

我会使用 UITableView,每个单元格都包含两个图像。看看this answer.

关于加载图片,尝试使用EGOImageLoader,非常简单有效。这是Github project

【讨论】:

  • 好的,谢谢,我去看看。所以我应该创建一个有两个视图的自定义单元格,每个视图都是 100x200,假设它们之间的距离为 50px。我可以在视图中加载图像,如下所示: cell.view1.thumbnail = [UIImage imagedWithURL: @"URL"]; cell.view2.thumbnail = [UIImage imagedWithURL: @"URL"];对吗?
  • 好吧,它可能是 cell.view1.thumbnail.imageURL = [NSURL URLWithString:@"URL"],但你得到了图片
  • 是否可以从 tableview 中删除表格行?
  • [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
  • 没问题 :) 如果任何答案对你有帮助,你应该接受一个
【解决方案3】:

正如这里的其他人所说,使用 UITableView。我将补充一点,您应该使用自定义 UITableViewCell 子类。创建类,然后使用 Storyboards 制作带有原型单元格的表格视图场景。将原型单元的类设置为您的单元子类。在情节提要的原型单元格中添加尽可能多的图像视图、标签、按钮以及任何您想要的废话,然后使用 IBOutlets 将它们连接到您的自定义类。现在,当需要在单元格中显示某些内容时,只需将包含所有所需信息的对象或字典传递给自定义单元格子类,并让它通过插座填充各种视图。这是一个教程:http://www.techotopia.com/index.php/Using_Xcode_Storyboards_to_Build_Dynamic_TableViews_with_Prototype_Table_View_Cells

【讨论】:

  • 是否可以从 tableview 中删除表格行?
  • 当然。单击情节提要编辑器中的表格视图,然后选择属性检查器(cmd-option-4),然后将分隔符样式设置为无。
猜你喜欢
  • 2012-07-04
  • 2011-01-07
  • 1970-01-01
  • 1970-01-01
  • 2013-12-14
  • 1970-01-01
  • 2012-02-19
  • 1970-01-01
  • 2023-03-18
相关资源
最近更新 更多