在哪里设置Monotouch.Dialog元素的背景颜色?

时间:2014-08-18 15:49:49

标签: c# ios xamarin.ios uicolor monotouch.dialog

我正在扩展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,因为它显然不能在这里工作?

1 个答案:

答案 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()方法位于实际元素上。

的引用: MonoTouch.Dialog: Update of Text in an Element