我不知道为什么这不起作用。 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/

10-12 00:30