我有一个UICollectionView,它由一个自定义的UICollectionViewCell子类组成.通过触发以下方法,该单元可以正确显示并正确响应用户的touch :

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath

然而,我的理解是,当用户touch 电池时,它应该高亮显示(蓝色),然后当用户抬起手指时,高亮显示应该消失.这种情况不会发生.想知道为什么吗?

以下是一些相关代码:

在UICollectionView的数据源中:

@implementation SplitCheckViewCollection

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *cellIdentifier = @"ReceiptCellIdentifier";
    SplitCheckCollectionCell *cell = (SplitCheckCollectionCell *)[collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
    cell.cellName.text = [NSString stringWithFormat:@"%@%i",@"#",indexPath.row+1];

    return cell;
}

在UICollectionViewCell的实现中:

@implementation SplitCheckCollectionCell

- (id)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        NSArray *arrayOfViews = [[NSBundle mainBundle] loadNibNamed:@"SplitCheckCollectionCell" owner:self options:nil];

        if ([arrayOfViews count] < 1) {
            return nil;
        }

        if (![[arrayOfViews objectAtIndex:0] isKindOfClass:[UICollectionViewCell class]]) {
            return nil;
        }

        self = [arrayOfViews objectAtIndex:0];    
    }
    return self;
}

推荐答案

该类只告诉您高亮显示状态,但不会更改视觉外观.你必须通过编程来完成,比如改变单元格的背景.

详情见CollectionView Programming Guide页.

Objective-c相关问答推荐

当 UIView 框架更改时,视图内的 AVPlayer 层不会调整大小

错误:协议不可用,正在转储回溯

如何从 Appdelegate 显示 UIAlertController

使用 Objective-C 在 iOS 9 中将状态栏文本 colored颜色 更改为浅色

导致此问题的原因:无法从 switch 语句跳转到此 case 标签

无法从其 DataSource 获取单元格

iOS8:退出应用程序后不久出现蓝条“正在使用您的位置”

iOS是静态框架还是动态框架?

如果用户禁用了应用程序的推送,是否可以进行静默远程通知?

command/usr/bin/codedesign 失败,退出代码 1-代码符号错误

WKWebView 判断 JavaScript 返回值

UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效?

将输入视图添加到文本字段 iOS 8 时出错

iOS 8 Mapkit Objc 无法获取用户位置

Cocoapods ld:找不到-lPods-Projectname 的库

为标识符 (CELLNAME) 注册的 nib 无效 - nib 必须恰好包含一个顶级对象,该对象必须是 UITableViewCell 实例

在 Xcode 5 中运行代码覆盖时出现数十个“profiling:invalid arc tag”

如何更改标签栏上的非活动图标/文本 colored颜色 ?

永久设置 UITableView 内容插入

UICollectionView 自动调整高度