【问题标题】:UITableView, Separator color where to set?UITableView、Separator颜色在哪里设置?
【发布时间】:2011-03-22 20:19:49
【问题描述】:

我在 IB 中添加了UITableView 并设置了“委托”和“数据源”,一切正常。我接下来想做的是更改分隔符颜色,但我能找到的唯一方法是将方法添加到委托回调之一,我应该把它放在更好的地方吗?

我目前没有这个,但我想也许我需要从我的控制器中添加一个“iVar”,我可以链接到 IB 中的 UITableView,然后在 viewDidload 中设置分隔符颜色?

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView setSeparatorColor:[UIColor blackColor]];
    return 65;
}

【问题讨论】:

  • 添加变量并将其连接到 IB 是我一直这样做的方式。
  • 这就是我的想法。我正在做一个他们没有使用的教程和 iVar,他们只是依赖于委托和数据源回调。但是他们从未访问过分隔符颜色,所以也许这就是原因。

标签: ios objective-c uitableview cocoa-touch


【解决方案1】:
- (void)viewDidLoad
{
   [self.tableView setSeparatorColor:[UIColor myColor]];
}

希望对您有所帮助 - 请记住,您需要 self. 才能访问它。

Swift 4.2

tableView.separatorColor = UIColor.red

【讨论】:

  • 嗨 Helen,不需要添加 @property 就可以访问它吗?看起来是这样的?
  • 这是真的。您正在继承 UITableViewController,它将它声明为一个属性。因此它继承了超类的访问器/设置器方法,因此您可以相应地设置它。但是,您不能直接访问实例变量(可能是件好事)。之所以可以在委托方法中设置,是因为它是被调用方法的参数。
  • 或者如果你喜欢:self.tableView.separatorColor = UIColor.clearColor;
  • 不是答案的特别部分,但将[super viewDidLoad]; 添加到代码 sn-p 会很好。
  • 这行得通,但它的单元格比需要的多。如果我有 4 个单元格,我如何在下面没有大量额外的空单元格?
【解决方案2】:

现在您应该可以直接在 IB 中进行操作了。

但不确定,最初发布问题时是否可用。

【讨论】:

    【解决方案3】:

    Swift 版本:

    override func viewDidLoad() {
        super.viewDidLoad()
    
        // Assign your color to this property, for example here we assign the red color.
        tableView.separatorColor = UIColor.redColor()
    }
    

    【讨论】:

    • 这在 tvOS 上显示了一个错误 'separatorColor' is unavailable
    【解决方案4】:

    试试UITableView的+(instancetype)外观

    目标-C:

    [[UITableView appearance] setSeparatorColor:[UIColor blackColor]]; // set your desired colour in place of "[UIColor blackColor]"
    

    Swift 3.0:

    UITableView.appearance().separatorColor = UIColor.black // set your desired colour in place of "UIColor.black"
    

    注意:更改将反映到应用程序中使用的所有表。

    【讨论】:

      【解决方案5】:

      Swift 3,xcode 版本 8.3.2,storyboard->选择你的表格 View->inspector->Separator。

      【讨论】:

        【解决方案6】:

        如果您只想为每个分隔符设置相同的颜色并且它是不透明的,您可以使用:

         self.tableView.separatorColor = UIColor.redColor()
        

        如果您想为分隔符使用不同的颜色或清除分隔符颜色或使用带有 alpha 的颜色。

        小心:您必须知道分隔符中有一个具有默认颜色的 backgroundView。

        要更改它,您可以使用以下功能:

            func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
                if(view.isKindOfClass(UITableViewHeaderFooterView)){
                    var headerView = view as! UITableViewHeaderFooterView;
                    headerView.backgroundView?.backgroundColor = myColor
        
                   //Other colors you can change here
                   // headerView.backgroundColor = myColor
                   // headerView.contentView.backgroundColor = myColor
                }
            }
        
            func tableView(tableView: UITableView, willDisplayFooterView view: UIView, forSection section: Int) {
                if(view.isKindOfClass(UITableViewHeaderFooterView)){
                    var footerView = view as! UITableViewHeaderFooterView;
                    footerView.backgroundView?.backgroundColor = myColor
                   //Other colors you can change here
                   //footerView.backgroundColor = myColor
                   //footerView.contentView.backgroundColor = myColor
                }
            }
        

        希望对你有帮助!

        【讨论】:

        • 这在 tvOS 上显示了一个错误 'separatorColor' is unavailable
        • tvos 没有 ios 的所有功能。
        猜你喜欢
        • 2018-01-23
        • 1970-01-01
        • 2014-09-04
        • 1970-01-01
        • 2011-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-29
        相关资源
        最近更新 更多