我是 XCode 的新手,仍在学习 XCode(目前使用 Xcode 4.5.2)。
基于 Apple 关于IconCollection的教程,我尝试制作一种缩略图视图应用程序,其中 ImageMetada 字段存储在数组中作为 CollectionView 数据源。
以下是一些基本信息:
- 1个xib文件(MainMenu.xib)
- 1 个窗口,主视图上有一个CollectionView和TableView 。
- 1 个对象控制器委托窗口和具有自定义类名称的应用程序名称:ThumbsViewController
- 1 个放置在 xib 上的集合项目的自定义视图(但不在主窗口或其子视图上)由 1 个 ImageView、1 个标签(文本字段)和 2 个按钮组成。此视图使用自定义类:ThumbViewItem。第一个按钮用于设置日期信息,第二个按钮用于删除它。我的目的是当我将鼠标放在当前项目上时,仅当在元数据上找不到日期信息时才应启用第一个按钮,而仅当在元数据上找到日期信息时才应启用第二个按钮。我已将每个 iboutlet 设置为ThumbViewItem.h文件(imgpic、imglabel、imgbtn1 和 imgbtn2)。这个想法可能有点像 Adobe lightroom 4 底部照片集的缩略图视图。
- NsCollectionViewItem 的视图出口连接到ThumbViewItem (4),它的 itemPrototype 出口连接到窗口上的CollectionView (2)
- 图像信息的数组 ( imageInfos ),包括在 ThumbsViewController.h(3) 上定义的图片和元数据。我打算使用这个数组作为共享数组用于collectionview和tableview
- 存储在数组中的数据是在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];
}
这段代码的问题是有时有效,有时无效。
任何帮助,将不胜感激。谢谢。