ios – 奇怪的UICollectionView选择行为

前端之家收集整理的这篇文章主要介绍了ios – 奇怪的UICollectionView选择行为前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用UICollectionView来显示一个菜单,并且这些项目正以非常奇怪的方式进行选择.

这是我填写的静态数据:

self.menuItems = @[@{@"text" : @"First",@"image" : @"180-stickynote.png"},@{@"text" : @"Second",@{@"text" : @"Third",@{@"text" : @"Fourth",@{@"text" : @"Fifth",@{@"text" : @"Sixth",@"image" : @"180-stickynote.png"}];

和单元格提供程序,其中自定义子类附加到原型单元格,并具有UILabel和UIImageView:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{

    CUMenuCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MenuCell" forIndexPath:indexPath];

    NSDictionary *cellInfo = [self.menuItems objectAtIndex:indexPath.row];

    cell.imageView.image = [UIImage imageNamed:[cellInfo valueForKey:@"image"]];

    cell.label.text = [cellInfo valueForKey:@"text"];

    return cell;
}

这里是选择行方法,记录标题和项目的行(它们都在第0部分):

- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"%@: %d",[[self.menuItems objectAtIndex:indexPath.row] valueForKey:@"text"],indexPath.row);
}

最后,我的菜单的屏幕截图:

这是从第一到第六,从第六到第一(第一,第二,第三,第四,第五,第六,第一)的项目的日志(共12个抽头,注意,第一个水龙头甚至没有注册,第六个水龙头也没有):

------------------------------------- FIRST TAP ON FIRST HERE
2013-02-13 19:38:37.343 App[1383:c07] First: 0  // second tap,on Second
2013-02-13 19:38:38.095 App[1383:c07] Second: 1 // third tap,on Third
2013-02-13 19:38:38.678 App[1383:c07] Third: 2  // fourth tap,on Fourth
2013-02-13 19:38:39.375 App[1383:c07] Fourth: 3 // fifth tap,on Fifth
2013-02-13 19:38:40.167 App[1383:c07] Fifth: 4  // so on
2013-02-13 19:38:41.751 App[1383:c07] Sixth: 5
------------------------------------- SECOND TAP ON SIXTH HERE
2013-02-13 19:38:42.654 App[1383:c07] Fifth: 4
2013-02-13 19:38:43.318 App[1383:c07] Fourth: 3
2013-02-13 19:38:44.495 App[1383:c07] Third: 2
2013-02-13 19:38:45.071 App[1383:c07] Second: 1

解决方法

这是因为您使用didDeselectItemAtIndexPath:方法而不是didSelectItemAtIndexPath :.一个容易的错误,特别是当你使用代码完成,当你输入它.

猜你在找的iOS相关文章