iOS 개발/iOS
[iOS] UITableView reloadData 에서의 Crash 및 Cell 삭제
beankhan
2016. 9. 20. 17:21
1. reloadData 에서의 Crash 가 발생하는 현상 (UITableViewDataSource 에는 아무 이상 없다는 가정하에)
UITableView 내부 Cell 안에 UITextField 가 존재하는 상태에서,
UITextField 에 포커스가 가 있는 채로
[tableView reloadData]; 를 호출하게 되면 Crash 가 발생할 수 있다.
이때 Focus 를 뺏어주고 reloadData 를 호출하면 정상적으로 작동한다.
2. TableView 에서 cellForRow: 시 Cell 재사용을 하지 못하고 갑자기 사라지는 현상
UITableView 내부 Cell 안에 UITextView 가 존재하는 상태에서,
UITextView 의 크기에 따라 Cell 크기를 조절해야할 때가 있다.
(한글의 경우 reloadData 를 호출해주는 것이 아닌 beginUpdate, endUpdate 를 통해 글자의 포커싱을 유지해줘야한다.)
UITextView 에 포커스가 없는 상태에서 쓸데없이 beginUpdate, endUpdate 를 자주 호출하면 이와 같은 현상이 발생한다.
포커스가 있는 상태에서 꼭 필요할 때만 beginUpdate, endUpdate 를 호출해줘야한다.