0

我在使用 SSCollectionView 和 SSCollectionViewItem 时遇到了困难。

首先,我想从 IB 初始化它。但这对我不起作用。我有一个 SelectFooViewController 这是:

@interface SelectFooViewController : SSCollectionViewController { ... }

并将其用作相应 XIB 的 filesOwner。

 SelectFooViewController* selectFooVC = [[SelectFooViewController alloc]
 initWithNibName:@"SelectFooViewController" bundle:nil];

但由于它不起作用,我不得不自己在 viewDidLoad() 中初始化它的属性。

此外,除了 SSCollectionViewItems 的 backgroundColor 之外,我无法显示任何内容。我想要的是一个 textLabel 和一个 image 。

- (SSCollectionViewItem *)collectionView:(SSCollectionView *)aCollectionView itemForIndexPath:(NSIndexPath *)indexPath {
    SSCollectionViewItem *item = [[[SSCollectionViewItem alloc] initWithStyle:SSCollectionViewItemStyleImage reuseIdentifier:itemIdentifier] autorelease];

    SSLabel* label = [[SSLabel alloc] init];
    [label setText:@"foo"];
    item.imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"foo.png"]];
    item.textLabel = label;
    [label autorelease];

    return item;
}

我可以确认委托方法(用于确定行数、节数等)已实现并按预期工作。但我的项目都是空的 - 但对 onclick 的反应是预期的弹出窗口。

有人看到我所做的错误吗?- 谢谢...

编辑:我也无法通过更改 SSCatalog 项目来显示本地图像

4

2 回答 2

2

我刚刚发现,我必须自己设置每个属性(textLabel、detailTextLabel 和 imageView)的框架。那解决了它。

于 2011-08-03T08:41:35.543 回答
0

当您创建实例 SelectFooViewController 只需插入此行

selectFooVC.view;

或者

selectFooVC.view.hidden = NO;

然后将其添加到视图中。

这是因为视图在您明确访问它之前不会被初始化。因此,您的项目仅在您单击它时才会加载,而不是立即加载。您可以称其为 hack,但我不称其为 hack。:-)

于 2011-07-22T11:19:18.007 回答