Computer >> 컴퓨터 >  >> 프로그램 작성 >> IOS

Swift에서 TableView 셀 높이를 동적으로 변경

<시간/>

ios에서 tableView 셀의 높이를 동적으로 변경하려면, 즉 사용 가능한 콘텐츠에 따라 셀 크기를 조정하려면 자동 차원 속성을 사용해야 합니다. 샘플 프로젝트를 통해 이를 확인할 수 있습니다.

빈 프로젝트를 만들고 해당 viewController 클래스로 이동하여 UITableViewDataSource 및 UITableViewDelegate를 준수합니다.

이제 아래 코드에서 먼저 테이블을 만든 다음 해당 테이블에 대한 셀을 등록하고 일부 테이블 속성을 추가합니다.

테이블 뷰 델리게이트와 테이블 뷰 데이터 소스를 설정하겠습니다.

마지막으로 볼 테이블 뷰를 추가합니다. 그런 다음 뷰 컨트롤러의 viewDidLoad 메서드 내에서 이 함수를 호출합니다.

참고: EstimatedRowHeight 라는 속성을 설정했습니다.

func initTableView() {
   let tableView = UITableView()
   tableView.frame = self.view.frame
   tableView.dataSource = self
   tableView.delegate = self
   tableView.backgroundColor = colorLiteral(red: 0.6000000238, green: 0.6000000238, blue: 0.6000000238, alpha: 1)
   tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
   tableView.estimatedRowHeight = UITableView.automaticDimension
   self.view.addSubview(tableView)
}

이제 이 코드는 뷰에 테이블을 추가하고 코드에서 원하는 섹션과 행 수를 테이블에 알려야 합니다.

func numberOfSections(in tableView: UITableView) -> Int {
   return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
   return 5
}
func numberOfSections(in tableView: UITableView) -> Int {
   return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
   return 5
}

이 코드는 테이블 보기의 두 번째 행에 큰 텍스트 줄을 만들어 콘텐츠 크기에 따라 높이를 얻습니다.

참고: UITableViewCell은 기본적으로 레이블 속성을 가지고 있고 레이블은 기본적으로 1줄의 길이를 가지므로 자동 차원이 작동하도록 변경해야 합니다.

이제 테이블에 셀의 높이를 알려야 합니다.

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
   return UITableView.automaticDimension
}

위의 코드를 실행하면 다음과 같은 결과가 나타납니다.

Swift에서 TableView 셀 높이를 동적으로 변경