【问题标题】:custom tableview cell selection color in custom cell自定义单元格中的自定义表格视图单元格选择颜色
【发布时间】:2012-07-10 19:15:48
【问题描述】:

我已经为此搜索了两天,但找不到我的答案......

我有一个自定义的 uitableviewcell,然后我需要在选择单元格时实现自定义颜色。

cell.selectedBackgroundView.backgroundColor = [UIColor greenColor];

对我不起作用。或者如果它有效,背景颜色是清晰的,我不明白有什么问题。似乎我不知道如何在界面生成器中正确连接我的自定义单元。我可以创建一个自定义单元格,但唯一的问题是我不知道如何进行选择。因此,如果有人可以帮助我,我将非常感激。或者也许有人知道这方面的教程?

提前致谢!

【问题讨论】:

  • 在stackoverflow上有一个similar question,希望你能在那里找到你需要的东西
  • 谢谢,但我没有找到有用的东西..

标签: iphone objective-c ios interface-builder


【解决方案1】:

不需要自定义单元格。如果您只想更改单元格的选定颜色,可以这样做:

UIView *bgColorView = [[UIView alloc] init];
[bgColorView setBackgroundColor:[UIColor redColor]];
[cell setSelectedBackgroundView:bgColorView];
[bgColorView release];

【讨论】:

  • 我已经尝试过这样,但随后选择以某种方式出现在我的自定义单元格之上,并且 imageview 和标签在它之下..
【解决方案2】:

希望以下代码能够正常工作。您需要将此代码复制粘贴到 customCell 实现文件中。

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];

UIView *backgroundView = [[UIView alloc] initWithFrame:self.selectedBackgroundView.frame];
[backgroundView setBackgroundColor:[UIColor colorWithRed:143/255.f green:141/255.f blue:147/255.f alpha:1.0]];
[self setSelectedBackgroundView:backgroundView];
[backgroundView release];
}

【讨论】:

  • 谢谢,这很好,但不幸的是它不起作用://我几乎可以肯定我在 IB 中搞砸了连接,我很想在某处实现选择的自定义单元格..也许你知道一些我可以找到示例的开源项目?
【解决方案3】:

@Pandey_Laxman 是对的。简单地使用cell.seletedBackgroundView 是行不通的,因为默认情况下 UItableViewCell 的 backgroundView 和 selectedBackgroundView 都是 nil 。您需要先初始化一个 UIView,然后再将其设置为单元格的 selectedBackgroundView。见selectedBackgroundView()的定义

【讨论】:

    【解决方案4】:

    我终于找到了我的问题的答案..

    我犯了一个非常愚蠢的错误.. 所以首先你需要将文件所有者类设置为 NSObject 到你在 IB 中的 customcell, 然后将您的 uitableviewcell 类作为您的自定义单元格,在我的情况下为“myCustomDisplayCell”..

    此外,从下到上(IB 中的视图),我添加了一个 uiview 并连接了单元格背景视图, 在顶部,我放置了一个 uiview 并连接了单元格 selectedbackgroundview(使视图颜色清晰) 然后最后我放置了一个uilabel uiimageview,并将这些正确连接起来..(您可以在此处添加自定义单元格所需的您自己的东西)。就是这样!现在看起来很容易..

    谢谢大家的帮助!

    【讨论】:

      【解决方案5】:

      您在自定义单元类中设置它如下(Swift 4):

      import UIKit
      
      class CustomTableViewCell: UITableViewCell { 
      
      ... 
      
       override func setSelected(_ selected: Bool, animated: Bool) {
              super.setSelected(selected, animated: animated)
              if(selected) {
                  self.backgroundColor = UIColor(named: "BrilliantAzure")
              } else {
                  self.backgroundColor = UIColor.white
              }
          }
      
      ...
      

      因此,无需为此特定任务创建额外的视图。

      【讨论】:

        猜你喜欢
        • 2012-05-26
        • 2017-06-25
        • 2020-09-11
        • 1970-01-01
        • 2015-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-28
        相关资源
        最近更新 更多