내 tableview에 새로운 자동 크기를 사용하려고합니다. 필자는이 일을 :Swift에서 회전 장치를 회전 할 때 iOS8 tableviewcell 높이가 변경됩니다.
tableView.rowHeight = UITableViewAutomaticDimension
나는 훌륭한 노력하고 몇 가지 제약 조건 내있는 UITableViewCell에 여러-UILabel의이; 가로 및 세로 모두에서 tableview를 입력하면 행의 높이가 동적입니다! 굉장해!
...하지만 기기를 회전하면 행의 기본 높이 (예 : 44)가됩니다.
나는이 행 추가 :override func willAnimateRotationToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval)
{
self.tableView.reloadData()
}
을 그리고 문제는 사라진다. 그러나 이것이 정말로 필요한가? 이 문제를 해결하는 더 좋은 방법이 있어야합니까?
편집 :
난 그냥 같은 문제는이 같은 테이블보기에서 행을 삭제있을 때 발생하는 것을 발견 :
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
내가 여기서 뭔가를 놓치고 있습니까? 왜이게 상자 밖에서 작동하지 않니? 다시
편집 :
는 지금과 같이 일을했습니다 내 데이터 API에서 가져온 것입니다
다음self.tableView.estimatedRowHeight = 44
tableView.rowHeight = UITableViewAutomaticDimension
가 :
self.tableView.reloadData()
self.tableView.beginUpdates()
self.tableView.endUpdates()
이 모두 커버하는 것 내가 지금까지 테스트 해 보았던 사례들, 그러나 그것은 정말로 해킹 된 것처럼 보입니다! 시작/끝 업데이트가 없으면 셀이 첫 번째로드에서 정말 펑키 한 높이를 표시합니다. (그러나 장치를 회전 할 때 셀 높이가 정확하게 조정됩니다.)
이 모든 것이 너무 버그가있는 것처럼 보입니다. 이 케이스들을 정확하게 커버하는 하나의 안내서를 찾지 못했습니다.
이 기사는 매우 유용하고 확실하지는 않지만 확실한 문제입니다. 하지만 iOS8에서는 willAnimateRotationToInterfaceOrientation을 사용하거나 데이터를 다시로드 할 필요가 없습니다. http://captechconsulting.com/blog/tyler-tillage/ios-8-tutorial-series-auto-sizing-table-cells – dirkgroten
안녕하세요. 질문 당신이 uitableviewcell에 자동 레이아웃 제약 조건을 사용했는지 말해 주시겠습니까? uilabel의 내용에 따라 높이가 필요하거나 항상 44가되어야합니다. 더 직면하게 될 문제의 이미지를 추가하십시오. 당신의 문제를 확인하십시오. –