隐藏取消隐藏的UITableViewCell背景

克鲁纳尔

UITableView在其中要在第一个单元格上viewDidLoad添加图像后,方法中的第一个单元格上添加背景图像,当用户选择任何其他行时,我想隐藏我的背景图像。

有可能吗?

请帮助并提前致谢。

编辑:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath*)indexPath{
    if(indexPath.row==0){
        cell.backgroundView = [ [UIImageView alloc] initWithImage:[[UIImage imageNamed:@"active-tab.png"] stretchableImageWithLeftCapWidth:0.0 topCapHeight:5.0] ];
                flag=true;
         NSLog(@"willDisplayCell");
    }
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
   if (flag==true) {
       cell.backgroundView = nil; //How to get `cell` here ?
       //How to remove BGImage from first cell ???
    }
}
西蒙·麦克劳林

看一下这个问题,第二个答案给出了很好的描述。

简而言之,您不应使用viewDiLoad回调,而应使用

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { ... }

在这里,您可以根据需要自定义每个单元格的背景,只需在用户单击时重新加载行即可。

如何自定义UITableViewCell的背景色?

编辑

现在,因为您添加了代码,所以我可以清楚地看到问题所在:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"BTSTicketsCellIdentifier";
    CRHomeCategCell *cell = (CRHomeCategCell *)[_tblCateg dequeueReusableCellWithIdentifier:CellIdentifier];
    cell.backgroundView = nil;

}

这并没有您认为的那样。dequeueReusableCellWithIdentifier:CellIdentifier根据标识符标识的单元格,为您提供一个新的单元格实例。

您在此处没有对该行的引用,而是在创建一个新行并将其背景设置为nil。

您的代码应该更像这样:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath*)indexPath{
    if(indexPath.row==0){
        if(cell.backgroundView == nil)
        {
            cell.backgroundView = [ [UIImageView alloc] initWithImage:[ [UIImage imageNamed:@"active-tab.png"] stretchableImageWithLeftCapWidth:0.0 topCapHeight:5.0] ];
            NSLog(@"willDisplayCell");
        }
        else
        {
            cell.backgroundView = nil;
            NSLog(@"willHideCell");
        }

    }
}

这不是一个很好的解决方案,我个人会做更多的事情,例如让这个自定义单元格保持一个布尔值并切换其状态并检查。但这取决于您的发展,这是它应该如何工作的总体思路。

编辑2:

由于您确定要在内部运行它,didSelectRowAtIndexPath并且完全不能进行任何级别的研究或对您的工作进行任何努力,因此我建议使用以下方法:

tableView cellForRowAtIndexPath:<#(NSIndexPath *)#>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

取消隐藏隐藏的Gerrit项目

来自分类Dev

隐藏/取消隐藏的蝙蝠文件

来自分类Dev

VBA隐藏/取消隐藏按钮

来自分类Dev

无法隐藏/取消隐藏SKSpriteNode

来自分类Dev

取消隐藏光标滞后

来自分类Dev

一一取消隐藏行

来自分类Dev

隐藏UITableViewCell的边界部分

来自分类Dev

通过悬停隐藏/取消隐藏HTML部分?

来自分类Dev

如何取消隐藏丢失的隐藏工作表?

来自分类Dev

rHighcharts隐藏/取消隐藏无法正常工作

来自分类Dev

单击按钮隐藏或取消隐藏文本

来自分类Dev

angularjs表单隐藏取消隐藏触发验证

来自分类Dev

根据行值隐藏/取消隐藏列

来自分类Dev

隐藏和取消隐藏列-Google表格

来自分类Dev

使用tput隐藏和取消隐藏光标

来自分类Dev

Google脚本表隐藏/取消隐藏

来自分类Dev

如何取消隐藏“非常隐藏”工作表

来自分类Dev

angularjs表单隐藏取消隐藏触发验证

来自分类Dev

取消隐藏隐藏的标签栏(标签栏)

来自分类Dev

带单选按钮的隐藏/取消隐藏div

来自分类Dev

在Excel中隐藏/取消隐藏列的宏

来自分类Dev

添加语句以正确隐藏/取消隐藏行

来自分类Dev

使用Java取消隐藏元素

来自分类Dev

使用jQuery取消隐藏div

来自分类Dev

在:hover上取消隐藏<img>

来自分类Dev

如何使Terminator专注于取消隐藏?

来自分类Dev

斯威夫特-UITableView不取消隐藏

来自分类Dev

如何取消隐藏窗口菜单?

来自分类Dev

隐藏包含UITextview(Autolayout)的UITableviewcell