서브 클래 싱 한 UITableViewSource 있습니다. 그래서 같이 GetCell을 무시하고 내 자신의 서브 클래스 세포를 사용하고 있습니다 :UITableViewDelegate 문제 - RowSelected 잘못된 NSIndexPath 제공
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
MarketItem item=_tableItems[indexPath.Section].Items[indexPath.Row];
MarketCell cell=tableView.DequeueReusableCell(_cellIdentifier) as MarketCell;
if (cell==null)
{
cell=new MarketCell(UITableViewCellStyle.Subtitle,_cellIdentifier,item);
}
// decorate the cell
// ...
return cell;
}
이 작동하지만 난 내 UITableViewDelegate에서 이벤트를 얻을 때, 인덱스 경로 나에게 잘못된 세포 (AccessoryButtonTapped, WillSelectRow 등 같은 행사)를 가져옵니다.
섹션과 행 번호는 올바른 보이지만 나는
tableView.CellAt(indexPath)
을 할 때 잘못된 세포를 얻을. (행 및 섹션 번호는 다시 올바른 본다.)
사항을 참고 :
- 표는 지속적으로 업데이트되는 - 항목은 다음 표 있지만
- 을 InvokeOnMainThread'd하는 다른 스레드에 도착을 아무것도 다시 주문하거나 내가 'WillSelectRow'를 얻을 때 나는 업데이트를 일시 정지하는 경우
- 을 삭제, 그것은
- 대부분의 흥미로운 (하지만 출하 가능한 솔루션을 도움이되지 않습니다 - 지속적으로 행과 섹션 만 추가, 업데이트됩니다) 내가 새 셀을 매번 만들면 DequeueReusableCell을 수행하는 것보다 올바르게 작동합니다.
내 자신의 멍청한 버그라고 생각할 수는 없지만 찾을 수는 없습니다. 어떤 도움이라도 가장 감사하게 받아 들일 것입니다! http://simon.nureality.ca/?p=91
기본적있는 UITableViewCell 하위 클래스하지 않는 대신 "MarketCellController"으로의 UIViewController 하위 클래스 :
의 당신이 table.ReloadData() 테이블의 데이터가 업데이트 될 때마다 호출 있습니까? – Luke
새 행이 추가 된 경우에만 - 기존 셀의 업데이트를 위해 ReloadRows()를 수행하고 있습니다. – vlad259
셀 대기열과 관련있을 수 있습니다. 귀하의 MarketCell 생성자는 새로 생성 된 셀에 _cellIdentifier를 어떻게 할당합니까? – riha