programing

TableViewController, iOS - Swift에서 여분의 빈 셀을 삭제하는 방법

batch 2023. 4. 21. 20:23
반응형

TableViewController, iOS - Swift에서 여분의 빈 셀을 삭제하는 방법

안녕하세요.TableViewController단, 2개의 스태틱셀이 표시되어 있는 경우는 2개의 스태틱셀이 표시되고 테이블뷰의 다른 모든 빈 셀이 표시됩니다.하지만 그 세포들은 쓸모없기 때문에 전시하고 싶지 않습니다.두 개의 정적 셀을 제외한 나머지 셀은 어떻게 숨기나요?

당신의 안에서viewDidLoad()함수는 다음 코드 행을 추가합니다.

tableView.tableFooterView = UIView()

UITableView를 선택하고 속성 검사기로 이동하여 스타일을 Grouped로 변경합니다.

여기에 이미지 설명 입력

여기에 추가하자면, 설정이 필요한 이유tableFooterView로.UIView()행을 삭제합니다.이것은, 빈칸을 설정했기 때문입니다.UIView()재산에 이의를 제기하다Apple 의 메뉴얼에 따라서:

var tableFooterView: UIView?

따라서 빈 UIView()를 설정하면 이 속성의 데이터 아래에 아무것도 표시되지 않습니다.

빈 행은 리셋하여 되돌릴 수 있습니다.tableFooterView다음과 같이 디폴트값으로 설정합니다.

tableView.tableFooterView = nil

의 설정tableFooterView보기와 같은 추가 셀을 제거해야 합니다.

   @IBOutlet weak var tableView: UITableView! {
        didSet {
            tableView.tableFooterView = UIView(frame: .zero)
        }
    }
tableView.tableFooterView = UIView.init(frame: CGRect.zero)

이 코드를 호출하다viewDidLoad방법.

Storyboard에서도 보기를 테이블 뷰의 바닥글 영역으로 드래그한 후 높이와 배경색을 각각 1로 설정하고 속성 검사기를 사용하여 지우기만 하면 됩니다.

(이는 어떤 이유로 그룹 스타일 설정만 사용할 수 없거나 사용할 수 없다고 가정합니다.그렇지 않으면 그렇게 하세요.)

Swift 4 HorseT의 답변을 자세히 설명하고 먼저 스토리보드의 테이블 뷰에서 뷰 컨트롤러 클래스로 드래그하여 table View라는 아웃렛을 만듭니다.

@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앱에서 다음과 같은 확장자를 추가합니다.

Swift 5.0

extension UITableView {

override open func didMoveToSuperview() {
    super.didMoveToSuperview()
    self.tableFooterView = UIView()

}

간단하게 추가:

tableView.tableFooterView = UIView()

설명:

이것은 완전히 유효하며 swift 3에서는 완벽하게 동작합니다.빈 UIView() 개체를 속성에 설정하므로 tableFooterView를 UIView()로 설정하면 행이 삭제됩니다.

"override func viewDidLoad()" 또는 "override func viewWillAppear(_ 애니메이션)"에서 아래 코드를 추가합니다. BOOL)" 기능이 있습니다.

tblOutletName.tableFooterView= UIView()

Abobe anwer가 옳습니다.이를 실현하기 위해서는

tableView.tableFooterView = UIView() // to remove extra cells in tableView

tableview.tableFooterView = UIView()를 시도했지만 작동하지 않았습니다.커스텀 TableViewCell을 사용하고 있기 때문에, 아마 그 이유일 것입니다.

해킹범을 찾았어요내 func number Of Rows InSection에서

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return yourArrayClass.count - 1
}

그 때문에, 여분의 공백의 커스텀 UITableViewCell이 표시되지 않게 됩니다.물론 여분의 빈칸이죠.Cells를 추가해서 조금 더 테스트해 보겠습니다.참고로 cellForRowAt 함수는 커스텀 셀 클래스인 Swift 3, Firebase를 사용하고 있습니다.

언급URL : https://stackoverflow.com/questions/28708574/how-to-remove-extra-empty-cells-in-tableviewcontroller-ios-swift

반응형