objective-c - 使 UITableView 的第一个单元格与其他每个单元格不同

标签 objective-c ios uitableview

我有一个表格 View ,一切正常,但现在我想让第一个单元格成为其余单元格的“解锁”按钮。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [currentPack count] + 1;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"Row is %i", indexPath.row);

    if(indexPath.row == 0)
    {
        SoundCell *cell = [SoundCell dequeOrCreateInTable:soundsTable];
        cell._NameLabel.text = @"Unlock This Pack;
        [cell._startButton setAlpha:0.0];

        return cell
    }
    else
    {
        SoundCell *cell = [SoundCell dequeOrCreateInTable:soundsTable];
        cell._NameLabel.text = [currentPack objectAtIndex:indexPath.row - 1];

        return cell
    }
}

现在它有点工作了,第一个单元格与其他单元格不同,并且看起来完全正确。我的问题是,出于某种原因,一些后来的细胞使用了

[cell._startButton setAlpha:0.0];

部分即使 indexPath.row 在创建时不为 0。它不会发生在每个单元格上,只是间歇性的,偶尔如果我上下滚动表格很多那么其他单元格也会遇到这个问题。在表格的所有其他方面都可以正常工作,选择一个单元格会触发正确的响应等。 有谁知道是什么原因造成的?本来实现起来好像很简单...

谢谢

最佳答案

对两种细胞类型使用不同的重用标识符,这样它们在重用时就不会混合。

或将以下行添加到其余行:

[cell._startButton setAlpha:1.0];

关于objective-c - 使 UITableView 的第一个单元格与其他每个单元格不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10193131/

相关文章:

objective-c - 动态更改 Windows 根目录,Swift

ios - 静态单元格不显示在模拟器中

html - iOS 设备上的 MP4 浏览器内视频播放间歇性中断

ios - Alamofire 无法禁用缓存

objective-c - UITableview 滚动不流畅

ios - 如何以编程方式更改 iOS 设备音量?

iphone - 什么时候应该使用延迟加载来加载图像?

ios - iAd 契约(Contract)到期?不是这样,iTunesConnect 说。 iAd Module 不这么认为

iOS:表格单元格中的 UILabel 和 UIButton

swift - 如何将 contentView 的高度调整为 UITableViewCell 的高度?