모든 셀이 UITableView에서 만들어진 후에 빈 셀 (빈 = 셀에 textLabel이 없음)을 제거 할 수 있는지 궁금합니다.삭제 프로그래밍 방식으로 UITableViewCell
감사합니다.
모든 셀이 UITableView에서 만들어진 후에 빈 셀 (빈 = 셀에 textLabel이 없음)을 제거 할 수 있는지 궁금합니다.삭제 프로그래밍 방식으로 UITableViewCell
감사합니다.
왜 비어있는 셀이 있습니까? 일관된 기술을 사용하여 테이블의 셀 수와 해당 셀의 내용을 모두 제어하고 있습니까?
UITableViewController를 사용하는 경우 컨트롤러가 자동으로 tableview의 데이터 소스로 선언됩니다. UIViewController를 사용하고 있다면, UITableViewDataSource 프로토콜에 맞게 (그리고 인터페이스 빌더에 연결하여) 선언 할 것이다.
어느 쪽이든은있는 tableview의 데이터 소스로, 컨트롤러는 두 가지 방법을 구현하기 위해 필요합니다 -있는 tableView : cellForRowAtIndexPath를 : -있는 tableView : numberOfRowsInSection :
이 아마도 당신이 배열로있는 tableview에 대한 데이터를 제공하고 있습니다 또는 -tableview 내부의 다른 수단 : cellForRowAtIndexPath :. 이 메서드 내에서 셀의 레이블은 배열의 항목에서 설정됩니다. 그리고 tableView : numberOfRowsInSection 내부 : [myArray count]와 같은 일을하면 셀의 수를 반환합니다. tableview : cellForRowAtIndexPath는 (tableview : numberOfRowsInSection :)에서 제공 한 것에 의해 지시 된 횟수만큼 호출됩니다. 데이터 소스 배열이 변경되면, 당신은 당신이 어떤 경우에이 계산 비용이 될 수 있도록 reloadData가 전체의 tableview를 다시로드 것을
[self.tableview reloadData]; //if inside a UITableViewController
[self.myTableViewOutlet reloadData]; //if inside a UIViewController
주를 호출 할 수 있습니다, 당신의 tableview의 변경 사항을 반영하고 싶습니다. 이 경우 reloadData를 호출하는 대신 deleteRowsAtIndexPaths : withRowAnimation : (UITableView Class Reference 참조)
응용 프로그램 대리인은 셀을 제공해야합니다. 모든 셀과 테이블에있는 셀의 수를 반환하는 것은 귀하의 책임입니다. 따라서 응용 프로그램 위임자는 NSMutableArray 또는 다른 방법을 통해 테이블보기로 돌아가는 데이터를 변경하는 방법을 가져야합니다.
메서드를 사용하여 개별 행에 집중할 수 있습니다. '앱 대리자'는 뷰 컨트롤러의 tableview와 관련이 거의 없습니다. tableview 대리자 및 데이터 소스를 의미합니까? – MattyG
안녕 매트, 내가 문제를 발견, 그것은 라이브러리를 비동기 적으로 이미지를로드하는 셀을 비우는 데 사용했다. 당신이 이미 여기에 게시 한 몇 가지 질문에 대답했기 때문에 당신은 반쯤 익숙해 져 있습니다. :) 이제 사용자를 로그 아웃하고 다른 사용자와 로그인 할 때 문제가 발생합니다. 문제는 UITableView 새로운 사용자 eventhough에 대한 새 데이터를 가져 오지 않는 데 refindhed 않습니다 그리고 내가 viewdidload(), 어떤 생각에 reloadData 넣어 이유는 무엇입니까? – ahoura
코드를 보지 않고 말하기는 어렵습니다. 새로운 질문에 코드를 게시 할 수 있습니다. 코드의 일부로 구조화 된 질문을 공식화하는 것은 종종 문제를 생각하는 좋은 방법입니다. 그 동안 문제를 직접 디버깅하려면 NSLog (@ "some text here")를 입력해야합니다. 귀하의 tableview에 statement : cellForRowAtIndexPath : 메서드와 viewDidLoad 메서드. 이렇게하면 메서드가 호출되는 시점 또는 그렇지 않은 시점을 확인할 수 있습니다. – MattyG
답장을 보내 주셔서 감사합니다. 솔루션을 찾았습니다. TabBar 컨트롤러를 사용할 때 UIView가 캐시되기 때문에 viewWillAppear() 함수를 사용하여 UIView를 업데이트했습니다. 하지만 다시 감사합니다 – ahoura