키보드가 표시 될 때 크기를 조절할 수있는 UITableView가 있습니다. 그러나크기가 조정 된 UITableView 셀의 프레임이 업데이트되지 않습니다.
// MonoTouch code
// Resize the table so it's not hidden by the keyboard
var keyboardFrame = UIKeyboard.BoundsFromNotification(notification);
var tableFrame = myTable.Frame;
tableFrame.Height = theView.Frame.Height - keyboardFrame.Height;
myTable.Frame = tableFrame;
// Bring the current cell back in view
this.InvokeOnMainThread(()=>{
if(currentCell != null) myTable.ScrollRectToVisible(currentCell.Cell.Frame, true);
});
, I (예 UIPopoverController 부착)이 화면에 그 셀의 현재 위치에 민감한 그 셀에 대한 작업을 수행 할 때, I는 해당 셀의 프레임 일본어를 나타내는 것을 알게 테이블 크기 조정 및 스크롤 전 위치
다음과 같이 이전 위치를 가리키는 프레임의 동일한 결과를 얻었습니다 (이 중 상당수는 무엇이 작동하는지 알 수없는 것을 알기 위해 실험하고있었습니다) :
- 셀에서 SetNeedsLayout을 사용하면 테이블의 하위 뷰인 테이블이 사용됩니다. 셀에 LayoutIfNeeded 사용
- 테이블의 파단 테이블 테이블을
- 다중 SetNeedsLayout의 조합
- 시간 우스운 양 스레드에 자, 새로운 스레드 산란 LayoutIfNeeded 함유보기 다른 레이아웃 기능
을 시간의 말도 안되는 금액을 자고 다음 호출 한 후 새 스레드를 산란 프레임
제스처를 사용하여 표를 스크롤하면 첨부 할 셀과 관련된 올바른 위치에 항상 팝업보기를 표시 할 수 있기 때문에 셀 프레임이 제대로 업데이트 된 것처럼 보입니다. 그래서 테이블 크기를 조정하고 프로그래밍 방식으로 스크롤하면 왜 그렇게되지 않을지 이해할 수 없습니다.
누구나 ReloadData (ReloadData는이 경우 많은 원치 않는 효과를 일으킴)를하지 않고 셀의 프레임을 업데이트하도록 UITableView를 강제하는 방법을 알고 있습니까?