我正在尝试在我的应用的幻灯片菜单上自定义ListView的所选背景颜色。所以我有这个自定义ViewCellRenderer,但我仍然在所选项目上获得标准的灰色背景:
public class MenuViewCellRenderer : ViewCellRenderer
{
UIView background;
public override UITableViewCell GetCell(Cell item, UITableViewCell reusableCell, UITableView tv)
{
var cell = base.GetCell(item, reusableCell, tv);
if (background == null)
{
background = new UIView
{
BackgroundColor = UIColor.Brown
};
}
cell.SelectedBackgroundView = background;
/*
SANITY CHECKS:
cell.BackgroundView = background; // this works, proving that I can override SOMETHING with my renderer
cell.MultipleSelectionBackgroundView = background; // tried this for just in case
cell.SelectionStyle = UITableViewCellSelectionStyle.None; // has no effect
Debug.WriteLine("I can read this in the console"); // yip
*/
return cell;
}
}
任何人都可以想到为什么这不起作用的原因? 任何建议的替代方案?
答案 0 :(得分:1)
您的代码适用于我,但SelectedBackgroundView似乎只在短时间内处于活动状态,因此我看到棕色背景,但很快就会淡化回非隔离背景视图。这是iOS的默认行为。您是否正在寻找单元格来保持所选的背景颜色,直到选择了另一个单元格?这可能有点复杂。