Если вы используете пользовательскую сотовую аксессуар вместо DetailDisclosureButton, вы не можете долго использовать событие AccessoryButtonTapped ... как я могу использовать пользовательскую сотовую аксессуар (то есть набор UIButton как AccessoryView для ячейки) и иметь возможность получить NSIndexPath, который подсчитывает строку и раздел, которые были выбраны?Monotouch с использованием пользовательских сотовых аксессуаров - как определить, какая строка выбрана
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 для пожара, не вызывая крушения на симуляторе - из моего понимания проблем с сборкой мусора - я думаю, его также важно не для того, чтобы авария не происходила на самом устройстве. .. но код, который внутри, не работает ни