Xaml 如何从Xamarin表单中的IOS Listview中删除此箭头或图像
当我在xamarin表单中编写listview时,这个图标会自动添加到IOS中,而在Android中则不存在 我尝试通过渲染viewrenderer使用自定义渲染器删除此视图,但此视图渲染器从未得到调用 下面是我用于自定义渲染的代码Xaml 如何从Xamarin表单中的IOS Listview中删除此箭头或图像,xaml,xamarin,xamarin.forms,Xaml,Xamarin,Xamarin.forms,当我在xamarin表单中编写listview时,这个图标会自动添加到IOS中,而在Android中则不存在 我尝试通过渲染viewrenderer使用自定义渲染器删除此视图,但此视图渲染器从未得到调用 下面是我用于自定义渲染的代码 [assembly: ExportRenderer(typeof(ViewCell), typeof(StandardViewCellRenderer))] namespace Sample.iOS.Renderers.RevisedRenderer { pub
[assembly: ExportRenderer(typeof(ViewCell),
typeof(StandardViewCellRenderer))]
namespace Sample.iOS.Renderers.RevisedRenderer
{
public class StandardViewCellRenderer : ViewCellRenderer
{
public override UIKit.UITableViewCell GetCell(Cell item,
UIKit.UITableViewCell reusableCell, UIKit.UITableView tv)
{
var cell = base.GetCell(item, reusableCell, tv);
switch (item.StyleId)
{
case "none":
cell.Accessory = UIKit.UITableViewCellAccessory.None;
break;
case "checkmark":
cell.Accessory = UIKit.UITableViewCellAccessory.Checkmark;
break;
case "detail-button":
cell.Accessory =
UIKit.UITableViewCellAccessory.DetailButton;
break;
case "detail-disclosure-button":
cell.Accessory =
UIKit.UITableViewCellAccessory.DetailDisclosureButton;
break;
case "disclosure":
default:
cell.Accessory =
UIKit.UITableViewCellAccessory.DisclosureIndicator;
break;
}
return cell;
}
}
}
让我知道需要修改或添加哪些内容才能使其正常工作卸下开关,并保留如下代码: var cell=base.GetCell(item,reusableCell,tv) cell.accessority=UITableViewcellAccessority.DisclosureIndicator 有关更多详细信息,请访问:
卸下开关,保留如下代码: var cell=base.GetCell(item,reusableCell,tv) cell.accessority=UITableViewcellAccessority.DisclosureIndicator 有关更多详细信息,请访问:
原因: 我尝试通过渲染viewrenderer使用自定义渲染器删除此选项 但该视图渲染器从未得到调用 视图呈现程序确实在项目中得到调用,而
Switch语句
中的代码从未执行,因为item.StyleId
始终为空。您可以添加断点来检查它
解决方案:
如果要删除箭头,只需设置cell.Accessory=UIKit.UITableViewCellAccessory.None代码>将起作用
class StandardViewCellRenderer : ViewCellRenderer
{
public override UIKit.UITableViewCell GetCell(Cell item,
UIKit.UITableViewCell reusableCell, UIKit.UITableView tv)
{
var cell = base.GetCell(item, reusableCell, tv);
Console.WriteLine(item.StyleId);
cell.Accessory = UIKit.UITableViewCellAccessory.None;
// switch (item.StyleId)
// {
// case "none":
// cell.Accessory = UIKit.UITableViewCellAccessory.None;
// break;
// case "checkmark":
// cell.Accessory = UIKit.UITableViewCellAccessory.Checkmark;
// break;
// case "detail-button":
// cell.Accessory =
// UIKit.UITableViewCellAccessory.DetailButton;
// break;
// case "detail-disclosure-button":
// cell.Accessory =
//UIKit.UITableViewCellAccessory.DetailDisclosureButton;
// break;
// case "disclosure":
// default:
// cell.Accessory =
// UIKit.UITableViewCellAccessory.DisclosureIndicator;
// break;
// }
return cell;
}
}
如果要显示具有不同cell.accessority
样式的单元格,可以创建自定义属性,而不是使用StyleId
我还上传了一个。原因:
我尝试通过渲染viewrenderer使用自定义渲染器删除此选项
但该视图渲染器从未得到调用
视图呈现程序确实在项目中得到调用,而Switch语句
中的代码从未执行,因为item.StyleId
始终为空。您可以添加断点来检查它
解决方案:
如果要删除箭头,只需设置cell.Accessory=UIKit.UITableViewCellAccessory.None代码>将起作用
class StandardViewCellRenderer : ViewCellRenderer
{
public override UIKit.UITableViewCell GetCell(Cell item,
UIKit.UITableViewCell reusableCell, UIKit.UITableView tv)
{
var cell = base.GetCell(item, reusableCell, tv);
Console.WriteLine(item.StyleId);
cell.Accessory = UIKit.UITableViewCellAccessory.None;
// switch (item.StyleId)
// {
// case "none":
// cell.Accessory = UIKit.UITableViewCellAccessory.None;
// break;
// case "checkmark":
// cell.Accessory = UIKit.UITableViewCellAccessory.Checkmark;
// break;
// case "detail-button":
// cell.Accessory =
// UIKit.UITableViewCellAccessory.DetailButton;
// break;
// case "detail-disclosure-button":
// cell.Accessory =
//UIKit.UITableViewCellAccessory.DetailDisclosureButton;
// break;
// case "disclosure":
// default:
// cell.Accessory =
// UIKit.UITableViewCellAccessory.DisclosureIndicator;
// break;
// }
return cell;
}
}
如果要显示具有不同cell.accessority
样式的单元格,可以创建自定义属性,而不是使用StyleId
我还上传了一个。尝试使用item.Accessory=UITableViewCellAccessory.None代码>尝试使用item.Accessory=UITableViewCellAccessory.None代码>问题是我的本机渲染器甚至没有启动问题是我的本机渲染器甚至没有再次启动相同的问题我的viewrenderer在本机中从未遇到过called@RonakShethia你看过我的演示了吗?或者,您可以在您的xamarin.forms项目中共享代码吗?我工作过,实际上我有两个自定义的viewrenderer,这就是为什么第二个渲染器没有得到调用的原因。我删除了第二个渲染器,并编辑了代码和它的工作,现在感谢您解决了相同的问题,我的viewrenderer在本机中从未得到过called@RonakShethia你看过我的演示了吗?或者您可以在您的xamarin.forms项目中共享代码吗?我工作过,实际上我有两个自定义的viewrenderer,这就是为什么第二个渲染器没有被调用的原因。我删除了第二个渲染器,并编辑了代码和它的工作,谢谢