2016-03-24 34 views
-1

我想只着色我的左半边或右半边我的tableview单元格背景。我该如何管理?目前,我只能设置整行的背景颜色。我试图在单元的左半部分放置一个标签,并设置标签的背景颜色。但问题在于标签覆盖了cell.text,因此我无法看到单元格的内容。我真的很想知道我是否可以在单元格文本下面设置标签,但是在单元格背景上方。所以它可以做它的工作。但其他方法来完成只着色tableview单元格的一半也是值得赞赏的!如何设置背景颜色只有一半的tableView单元格

我试过@ winnder.ktw以编程方式设置它。但是我得到了一个错误image我该如何解决? 谢谢!

回答

0

如果您使用界面生成器,只是改变的在左边的文档大纲面板视图的顺序,你可以选择什么是对的什么顶部:

Document Outline

如果你需要它的背景,不需要添加标签,只需将常规视图添加到您的单元格即可。

编辑:在这里,只需添加一个视图和一个标签,并确保标签在文档大纲面板中的视图下方。

enter image description here

+0

需要明确的是,我的问题是“如何改变该行的只剩一半的背景颜色? – DDR

+0

准确地说,将一个常规视图添加到行的左半部分,然后添加您想要的任何内容,并确保它位于“文档大纲”面板中视图的上方。 – dbmrq

+0

哦,实际上情况恰恰相反,它必须低于文档大纲中的背景视图。我会用一个例子更新我的答案 – dbmrq

-1

试试这个

- (UITableViewCell *) tableView: (UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath { 

    UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier: @"any-cell"]; 
    if (!cell) { 
     cell = [[UITableViewCell alloc] initWithStyle: UITableViewCellStyleValue1 reuseIdentifier: @"any-cell"]; 

     UIView* bgView = [[UIView alloc] initWithFrame: cell.bounds]; 
     bgView.backgroundColor = [UIColor whiteColor]; 
     UIView* halfView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, cell.bounds.size.width/2.0, cell.bounds.size.height)]; 
     halfView.backgroundColor = [UIColor greenColor]; 
     [bgView addSubview: halfView]; 
     cell.backgroundView = bgView; 
    } 

    return cell; 
} 
+0

我对Objective C不甚了解,但我明白你正在编程创建一个视图。并且可以肯定,就你的情况而言,你如何设置单元格内容,而不是被你创建的视图所覆盖? – DDR

+0

此代码只是更改backgroundView,因此不涵盖单元格内容。 –

+0

好吧,我想我的设置有问题。因为它给出了一个错误:“终止由于未捕获的异常'CALayerInvalid',原因:层是其层树中的循环的一部分” – DDR

相关问题