如果您使用自定义单元格附件而不是 DetailDisclosureButton 您将无法再使用 AccessoryButtonTapped 事件...如何使用自定义单元格附件(即设置为单元格的 AccessoryView 的 UIButton)并能够获得 NSIndexPath计数选择的行和部分?
image = UIImage.FromFile ("Images/checkmark.png");
lockButton = new UIButton(UIButtonType.Custom);
frame = new RectangleF(0f, 0f, 25f, 25f);
lockButton.Frame = frame;
lockButton.SetBackgroundImage(image, UIControlState.Normal);
lockButton.TouchUpInside += (sender, e) =>
{
try{
int i =0;
foreach(UIView sv in cell.Subviews)
{
if(cell.Subviews[i] is UITableView)
;
}
}
catch
{
}
};
if (sourceType == TableSoureType.Collections && collGroup [indexPath.Section].LocationEntity [indexPath.Row].CollectionStatus.ToLower () != "open") {
cell.TextLabel.TextColor = UIColor.Gray;
cell.AccessoryView = lockButton;
}
else if(sourceType == TableSoureType.Collections && collGroup [indexPath.Section].LocationEntity [indexPath.Row].CollectedToday) {
cell.TextLabel.TextColor = UIColor.Black;
cell.AccessoryView = lockButton;
}
else
{
cell.TextLabel.TextColor = UIColor.Black;
cell.Accessory = UITableViewCellAccessory.DetailDisclosureButton;
}
这可能是新帖子的原因,但我也有一个问题,当我单击按钮时,应用程序在模拟器上退出 - 我知道这可能是垃圾收集问题,所以我移动了按钮、图像和框架的声明到班级水平无济于事。
所以我有两个问题:
1 - 一旦我让 TouchUpInside 事件正常工作,我如何确定在触发该事件时选择了哪个单元格?
2 - 如何在不导致模拟器崩溃的情况下触发 TouchUpInside 事件 - 根据我的理解,这是一个垃圾收集问题 - 我想这也很重要,因为设备本身不会发生崩溃......但是里面的代码也不起作用