Xamarin Studio를 사용하여 MonoTouch 프로젝트 (파일 -> 새로 만들기 -> 파일 -> iOS -> iPhone 표보기 셀)에 새 사용자 지정 표 셀을 만듭니다. 그것은 UITableViewCell의 MyViewCell 서브 클래스를 생성한다. 클래스에는 이미 정적 Create() 메서드가 포함되어 있습니다. 나는 몇 가지 하위 뷰 변환을 사용하는 업데이트 방법에MonoTouch의 사용자 지정 UITableViewCell
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
var cell = tableView.DequeueReusableCell(MyViewCell.Key) as MyViewCell;
if (cell == null)
{
cell = MyViewCell.Create();
}
// my own code to update the cell content
cell.Update(someData);
return cell;
}
:
은 그 때 나는 테이블의 GetCell 방법이 방법이 클래스를 사용합니다. 문제는 셀이 처음 생성 될 때 (Create 메서드가 호출 될 때) 변환이 적용되지 않는다는 것입니다.
하지만 다음 실행 루프에 업데이트를 예약 할 경우 반복 모든 작동합니다 :
NSTimer.CreateScheduledTimer(TimeSpan.Zero,() =>
{
cell.Update(someData);
});
문제가 여기에 무엇입니까? 이 해킹을 사용하지 않고도 문제를 해결할 수 있습니까?
PrepareForReuse는 처음 사용시에는 호출되지 않으므로 그렇지 않습니다. LayoutSubviews가 해결책 인 것 같지만 생성 후 바로 업데이트를 호출하는 것과 같은 결과입니다. – alexey