我想在我的表格视图单元格上使用公开按钮。因此,我使用此自定义渲染器:
using HelloXamarinFormsWorld;
using HelloXamarinFormsWorld.iOS;
using UIKit;
using System;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
using System.Drawing;
using ObjCRuntime;
/* Example of using a custom renderer to get the > disclosure indicator to appear */
[assembly: ExportRenderer (typeof (EmployeeCell), typeof (EmployeeCellRenderer))]
namespace HelloXamarinFormsWorld.iOS
{
public class EmployeeCellRenderer : ViewCellRenderer
{
public override UITableViewCell GetCell(Cell item, UITableViewCell reusableCell, UITableView tv)
{
var cell = base.GetCell (item, reusableCell, tv);
cell.Accessory = UITableViewCellAccessory.DisclosureIndicator;
// // Remove seperator inset
// if (cell.RespondsToSelector (new Selector ("setSeparatorInset:"))) {
// cell.SeparatorInset = UIEdgeInsets.Zero;
// }
// // Prevent the cell from inheriting the Table View's margin settings
// if (cell.RespondsToSelector (new Selector ("setPreservesSuperviewLayoutMargins:"))) {
// cell.PreservesSuperviewLayoutMargins = false;
// }
// // Explictly set your cell's layout margins
// if (cell.RespondsToSelector (new Selector ("setLayoutMargins:"))) {
// cell.LayoutMargins = UIEdgeInsets.Zero;
// }
return cell;
}
}
}
如果我设置了披露指标,我会看到以下屏幕:
通常它看起来如下所示
我尝试使用插图,但必须在WillDisplay
中,并且也不会删除缩进。在this thread rmarinho 州
您可以通过设置UIEdgeInsets进行修复,我认为我在ExtendedViewCell上使用了Padding属性。
但我不知道应该在哪里这样做。或者我该如何修复缩进?
修改
使用cell.SeparatorInset = new UIEdgeInsets(0,0,0,0);
没有帮助。
答案 0 :(得分:1)
我想这应该是Xamarin.Forms
中的错误。
在查看反编译代码后,我发现默认ViewCellRenderer
试图通过计算单元格的内容视图来居中,这是不正确的,因为它没有考虑{{1的大小}}
因此,解决方法是手动插入指标(这是ExtendedViewCell所做的)并且不使用默认的披露指标。