Iphone sCollectionView委托问题
Iphone sCollectionView委托问题,iphone,objective-c,Iphone,Objective C,SSCollectionView控件有问题,它是SSToolkit中NSTableView的子类。出于某种原因,除了-(sCollectionViewItem*)collectionView:(sCollectionView*)aCollectionView itemForIndexPath:(NSIndexPath*)indexPath之外的所有委托都被调用。即使此委托是@必需的,删除它也不会导致异常。在你问之前,是的,下面的数组中都有数据 我已经检查了数据源/委托是否在任何阶段变为nil,但
SSCollectionView
控件有问题,它是SSToolkit中NSTableView
的子类。出于某种原因,除了-(sCollectionViewItem*)collectionView:(sCollectionView*)aCollectionView itemForIndexPath:(NSIndexPath*)indexPath
之外的所有委托都被调用。即使此委托是@必需的
,删除它也不会导致异常。在你问之前,是的,下面的数组中都有数据
我已经检查了数据源/委托是否在任何阶段变为nil
,但它没有变,所以我感到困惑
以下是我创建视图的方式:
- (void)viewDidLoad
{
NSLog(@"ViewDidLoad");
_titles = [[NSMutableArray alloc] init];
_subtitles = [[NSMutableArray alloc] init];
_thumbnails = [[NSMutableArray alloc] init];
_collectionView = [[SSCollectionView alloc] initWithFrame:[UIApplication sharedApplication].keyWindow.frame];
_collectionView.backgroundColor = [UIColor scrollViewTexturedBackgroundColor];
[_collectionView setDelegate:self];
[_collectionView setDataSource:self];
[self.view addSubview:_collectionView];
[_collectionView reloadData];
}
这称为fine,视图出现,但没有数据
永远不会调用此方法:
- (SSCollectionViewItem *)collectionView:(SSCollectionView *)aCollectionView itemForIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"Delegate Called");
static NSString *const itemIdentifier = @"itemIdentifier";
SSCollectionViewItem *item = (SSCollectionViewItem *)[aCollectionView dequeueReusableItemWithIdentifier:itemIdentifier];
if (item == nil)
{
item = [[[SSCollectionViewItem alloc] initWithStyle:SSCollectionViewItemStyleImage reuseIdentifier:itemIdentifier] autorelease];
}
item.textLabel.text = [_titles objectAtIndex:indexPath.row];
item.detailTextLabel.text = [_subtitles objectAtIndex:indexPath.row];
item.imageView.image = [_thumbnails objectAtIndex:indexPath.row];
return item;
}
我不认为这是一个bug-我错过了什么吗?如果您的收藏视图中没有任何项目,则不会调用此功能。确保实现了以下
sCollectionViewDataSource
方法并返回大于零的值
- (NSUInteger)collectionView:(SSCollectionView *)aCollectionView numberOfItemsInSection:(NSUInteger)section
此外,请确保还实现了以下sCollectionViewDelegate
方法,以便正确显示项目
- (CGSize)collectionView:(SSCollectionView *)aCollectionView itemSizeForSection:(NSUInteger)section
如果它是视图控制器中的唯一视图,我建议您使用
sCollectionViewController
,因为它将为您处理大量的粘合代码。尝试添加-(CGSize)集合视图:(sCollectionView*)集合视图项大小选项:(NSUInteger)部分:
视图加载之前的。。不知道为什么,但我觉得这样很有效哇!开发人员回答:D我已经实现了这两个,它们不会返回零。为了检查,我甚至实现了一条日志消息来确认这一点。因此我感到困惑。我做了一些移动,现在我被告知我不会告诉它项目的大小,即使我也实现了这个委托。奇怪,我现在确实让它工作了。但对于单元格样式,只有sCollectionViewItemStyleImage起作用,但我需要字幕。为什么不行?你是什么意思?在init
中设置委托和数据源?