답변:
당신의 viewDidLoad()
기능이 코드 줄을 추가합니다 :
tableView.tableFooterView = UIView()
NSTableView
있습니까? 그것은이 없습니다 tableFooterView
.
tableView.tableFooterView = UIView()
여기에 행 tableFooterView
을 UIView()
제거하도록 설정하는 이유 UIView()
는 속성에 빈 개체를 설정하기 때문 입니다. Apple 문서에 따르면 :
var tableFooterView: UIView?
따라서 빈 UIView ()를 설정하면이 속성에 대한 데이터 아래에 아무것도 표시되지 않습니다.
다음 tableFooterView
과 같이 기본값 으로 재설정하여 빈 행을 다시 가져올 수 있습니다 .
tableView.tableFooterView = nil
Swift 4 Elaborating on HorseT 's answer, 먼저 스토리 보드의 Table View에서 View Controller 클래스로 드래그하고 tableView라는 콘센트를 만듭니다.
@IBOutlet weak var tableView: UITableView!
그런 다음 View Controller의 viewDidLoad는 다음과 같아야합니다.
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
tableView.tableFooterView = UIView()
}
위의 답변을 바탕으로 신속하게 .
tableView.tableFooterView = UIView(frame: .zero)
UITableViews
앱의 모든 행을 제거하려면 다음 과 같은 확장을 추가하면됩니다.
스위프트 5.0
extension UITableView {
override open func didMoveToSuperview() {
super.didMoveToSuperview()
self.tableFooterView = UIView()
}
tableview.tableFooterView = UIView () 시도했지만 작동하지 않았습니다. 사용자 지정 TableViewViewCell을 사용하고 있는데 아마도 그 때문일 것입니다.
나는 해킹을 찾았습니다. 내 func numberOfRowsInSection에서
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return yourArrayClass.count - 1
}
그리고 내 여분의 빈 사용자 정의 UITableViewCell이 더 이상 표시되지 않습니다. 물론 여분의 공백입니다. 셀을 더 추가하여 좀 더 테스트하겠습니다. 참고로 cellForRowAt 함수 내에서 사용자 지정 셀 클래스 인 Swift 3, Firebase를 사용하고 있습니다.