我不知道为什么这不起作用。 indexOfIcon 是正确的,部分是正确的(用 NSLog 检查)如果我选择一个,一切都是正确的。但是这条线没有任何作用......为什么?如果选中它应该有一个蓝色边框。这在“手动”执行时效果很好,但不适用于代码。
- (void)viewWillAppear:(BOOL)animated
{
NSUInteger indexOfIcon;
if(self.mainCategory.icon){
indexOfIcon = [self.icons indexOfObject: self.mainCategory.icon];
} else {
indexOfIcon = 0;
}
[self.collectionView selectItemAtIndexPath:[NSIndexPath indexPathForRow:indexOfIcon inSection:0] animated:YES scrollPosition:UICollectionViewScrollPositionBottom];
}
最佳答案
添加
UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
cell.selected = YES;
并且单元格将被选中。
命令
[self.collectionView selectItemAtIndexPath:[NSIndexPath indexPathForRow:indexOfIcon inSection:0] animated:YES scrollPosition:UICollectionViewScrollPositionBottom];
告诉 collectionView,单元格处于选中状态,但不设置单元格的状态。关于iOS:Uicollectionview,didselectItemAtIndexPath 以编程方式不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20563769/