1

我是 XCode 的新手,仍在学习 XCode(目前使用 Xcode 4.5.2)。

基于 Apple 关于IconCollection的教程,我尝试制作一种缩略图视图应用程序,其中 ImageMetada 字段存储在数组中作为 CollectionView 数据源。

以下是一些基本信息:

  1. 1个xib文件(MainMenu.xib
  2. 1 个窗口,主视图上有一个CollectionViewTableView 。
  3. 1 个对象控制器委托窗口和具有自定义类名称的应用程序名称:ThumbsViewController
  4. 1 个放置在 xib 上的集合项目的自定义视图(但不在主窗口或其子视图上)由 1 个 ImageView、1 个标签(文本字段)和 2 个按钮组成。此视图使用自定义类:ThumbViewItem。第一个按钮用于设置日期信息,第二个按钮用于删除它。我的目的是当我将鼠标放在当前项目上时,仅当在元数据上找不到日期信息时才应启用第一个按钮,而仅当在元数据上找到日期信息时才应启用第二个按钮。我已将每个 iboutlet 设置为ThumbViewItem.h文件imgpic、imglabel、imgbtn1 和 imgbtn2)。这个想法可能有点像 Adob​​e lightroom 4 底部照片集的缩略图视图。
  5. NsCollectionViewItem 的视图出口连接到ThumbViewItem (4),它的 itemPrototype 出口连接到窗口上的CollectionView (2)
  6. 图像信息的数组 ( imageInfos ),包括在 ThumbsViewController.h(3) 上定义的图片和元数据。我打算使用这个数组作为共享数组用于collectionview和tableview
  7. 存储在数组中的数据是在imageinfo.h中定义的名为 imageinfo的接口。我在上面放了缩略图和元数据字典。

表格可以正确显示存储在数组中的信息,包括文件名、路径和元数据(日期和 GPS 信息)。但是 CollectionItem 的自定义视图不会。没有图片,没有名字,没有信息。

在调试时,我发现每个 IBOutlet : imgpic、imglabel、imgbtn1 和 imgbtn2 都是空的。

为什么所有 IBOutlet 属性/链接都不起作用?

有什么我忘记了吗?

如何从关联到 collectionitem 的自定义视图中获取存储在 imageinfos 数组中的 imageinfo 以用于自定义绘制目的?

CollectionView ---> Collection Item ---> 自定义视图

例如,在与索引号 4 处的集合项关联的自定义视图上执行自定义绘制时,我如何获得该索引(编号 4)?

我获取索引的代码是将其超级视图作为 collectionview 并在超级视图的子视图上获取其索引,如下所示:

-(NSInteger) getIndexInCollection 
{
    return [[[self superview] subviews] indexOfObject:self];
}

这段代码的问题是有时有效,有时无效。

任何帮助,将不胜感激。谢谢。

4

1 回答 1

0

阅读有关 NSCollectionview 的文档,IconViewPrototype.xib 注意简单的代码使用了一些绑定,在 Collection.xib 中应该确定如何使用 IconViewPrototype.xib 来显示自定义视图,并确保如何根据绑定获取数据源。

于 2013-01-04T07:19:38.187 回答