我正在扩展StyledMultilineElement类以组合RadioElement和StyledMultilineElement。两者的选择和组合工作正常,但是我的GetCell覆盖似乎没有正确设置单元格的背景颜色。
public override UITableViewCell GetCell (UITableView tv)
{
var cell = base.GetCell (tv);
bool selected = RadioIdx == this.rgroup.Selected;
cell.Accessory = selected ? UITableViewCellAccessory.Checkmark : UITableViewCellAccessory.None;
cell.BackgroundColor = selected ? UIColor.Cyan : UIColor.White;
return cell;
}
勾选标记确实出现在所选元素上,告诉我所选择的布尔值确实是正确的,但背景颜色总是显示为白色。
我假设这只是因为我试图在GetCell方法中执行此操作,但我不确定在哪里放置它。
所以问题是,我在哪里设置BackgroundColor,因为它显然不能在这里工作?
答案 0 :(得分:0)
您是否尝试过设置实际Element本身的BackgroundColor属性?
有一些属性:
UITableViewCellAccessory Accessory
int Lines
UILineBreakMode LineBreakMode
UIColor TextColor
UIFont SubtitleFont
UIFont Font
这些似乎是设置风格的区域。
此外,如果所选的值发生更改,则单元格不会立即实际更新。如果要刷新单元格,还可以执行以下操作来刷新单元格:
RootElement root = GetImmediateRootElement ();
root.Reload (this, UITableViewRowAnimation.Fade);
GetImmediateRootElement()
方法位于实际元素上。