Xamarin.Forms:使用公开按钮时删除缩进(Xamarin.Forms: Remove in

2019-10-22 02:13发布

我想用我的表视图细胞披露按钮。 所以我用这个自定义的呈现:

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也缩进不会被删除。 在此线程 rmarinho状态

你可以通过设置我觉得UIEdgeInsets,我使用的Padding属性修复ExtendedViewCell这一点。

但我不知道我应该这样做。 或如何解决这个缺口?

编辑:

使用cell.SeparatorInset = new UIEdgeInsets(0,0,0,0); 没有帮助。

Answer 1:

我想这应该是在一个错误Xamarin.Forms

寻找到的反编译代码后,我发现默认ViewCellRenderer试图通过计算电池,因为它没有考虑的尺寸是不正确的内容以中心本身DisclosureIndicator

因此,解决方法是手动插入的指标( 这是ExtendedViewCell做 ),不要使用默认的披露指标。



文章来源: Xamarin.Forms: Remove indentation when using a disclosure button