2014-02-13 3 views
0

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); 
}); 

문제가 여기에 무엇입니까? 이 해킹을 사용하지 않고도 문제를 해결할 수 있습니까?

답변

0

당신은 당신이 필요에 따라 셀 클래스에 세포 서브 뷰 변환 재정의 PrepareForReuse 방법 또는 LayoutSubviews 방법에 대한

업데이트

호출 될 때 셀이 표에 추가되지 않은 것은 이번이 처음.

+0

PrepareForReuse는 처음 사용시에는 호출되지 않으므로 그렇지 않습니다. LayoutSubviews가 해결책 인 것 같지만 생성 후 바로 업데이트를 호출하는 것과 같은 결과입니다. – alexey

관련 문제