2011-07-22 42 views
0

我遇到了SSCollectionView和SSCollectionViewItem的困难。SSCollectionView SSCollectionViewItem - 没有显示的项目

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

@interface SelectFooViewController : SSCollectionViewController { ... } 

,并使用它作为相应的厦门国际银行的filesOwner我。

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

但是既然不行,我不得不在viewDidLoad()我自己里面初始化它的属性。

此外,我不能显示任何东西,除了我的SSCollectionViewItems的backgroundColor。我想要的是一个textLabel和一个图像。

- (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; 
} 

我可以确认委托方法(用于确定行,段和这样的数量)被实现并作为预期工作。但是我的物品都是空的 - 但是会在预期的弹出窗口上作出反应。

有没有人看到我做了什么错误? - 谢谢...

编辑:我还没有能够改变SSCatalog项目中显示本地图像

回答

2

我刚想通了,我必须自己设置每个属性(textLabel,detailTextLabel和imageView)的框架。这解决了它。

0

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

selectFooVC.view; 

selectFooVC.view.hidden = NO; 

然后将其添加到视图中。

这是因为该视图在您明确地访问该视图之前未被初始化。因此,您的物品只在您点击时才加载,而不是立即加载。你可以称它为黑客,但我不称之为一个。 :-)

+0

那就是我之前阅读过的懒惰加载。但奇怪的是,我从来没有遇到过那种麻烦。在我的initWithNibName:call没有改变一件事情后,可悲地添加行... – Jakob

+0

你在哪里添加从代码的第二部分返回的项目? –

+0

您是否设置了委托并正确调用重新加载? –