弄清楚如何摆脱UITableView单元格中的单元格边框

时间:2013-03-30 22:54:39

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

我最近帮助通过使用monotouch.dialog覆盖GetCell方法来获取单元格上可用的属性。我现在的问题是我看不到摆脱细胞周围的默认边界。

我能够弄清楚如何在单元格周围绘制自己的边框(我相信它在单元格上使用核心图形和.Layer属性)。但是,旧边框仍然存在,我找不到禁用此属性的属性。

理想情况下,我希望能够自己定制现有边框,但如果这不可能(无需制作我自己的单元格图形),那么我想删除默认边框并使用生成的边框码。

请参阅下面的覆盖方法和截至目前为止的截图:

public override UITableViewCell GetCell(UITableView tableView) {
    var cell = base.GetCell(tableView);
    cell.BackgroundColor = Resources.XDarkGrayColor;
    cell.TextLabel.TextColor = Resources.XWhiteColor;
    cell.Accessory = UITableViewCellAccessory.DisclosureIndicator;
    cell.Layer.ShadowColor = UIColor.Red.CGColor;
    cell.Layer.BorderColor = UIColor.Red.CGColor;
    cell.Layer.BorderWidth = 2.0f;
    cell.Layer.CornerRadius = 5.0f;
    cell.Layer.ShadowRadius = 2.0f;
    cell.Layer.ShadowOpacity = 0.75f;

    return cell;
}

This shows the red border I created in code using the .Layer property of a cell, and then the default border around the cell just on the inside of the red border

1 个答案:

答案 0 :(得分:1)

IIRC(现在不能尝试)这是用背景视图绘制的。因此,您需要将其删除,例如:

cell.BackgroundView = new UIView (RectangleF.Empty);

或将Bounds属性设置为Empty,例如:

cell.BackgroundView.Bounds = RectangleF.Empty;