2016-12-02 1 views
0

cells 인 테이블 뷰는 자동 레이아웃 constraints을 사용하여 동적으로 커집니다. 나는이 동적으로 구성된 셀 중 하나에 UITableView을 표시해야한다는 시나리오가 있습니다. 여기에서 중요한 것은 무엇이든간에 프레임을 알지 못하고 제약 조건을 사용하여 모든 것을 구성해야한다는 것입니다. 내가 필요한 것은 이것을 달성하는 방법에 대한 설명입니다.자동 레이아웃 제약 조건이있는 동적 높이가있는 UITableView

+0

다음을 수행하십시오. https : //iosstuff.wordpress.com/2011/06/29/addition-a-uitableview-inside-a-uitableviewcell/ –

+0

이 링크를 방문하면 도움이 될 것입니다 http://stackoverflow.com/questions/26752645/dynamic-uitablecellview-height – Aravi

+3

가능한 dyblicate http://stackoverflow.com/q/18527227/2012219 – gbk

답변

0

그래서 당신은 그것에 tableView가있는 MasterViewController가 있다고 생각합니다. 그런 다음, MasterViewController의 tableView 셀 중 하나에 MyCustomcell 클래스의 일부인 또 다른 tableView를 추가하려고합니다.

customView를 tableView와 함께 추가하는 것은 그리 중요하지 않지만 CustomCell에 표시 할 데이터에 따라 MasterViewController 높이를 계산하고 유지하는 것은 약간 까다 롭습니다. CustomCell을 tableView에 추가하는 방법에 대해서만 묻는다면 간단한 Google로 쉽게 얻을 수있는 많은 유용한 자습서를 이용할 수 있습니다.

비슷한 상황에 직면하여 다음과 같은 방식으로 문제를 해결했습니다. 희망이 도움이됩니다.

1) 텍스트를 표시해야하는 customCell이있는 경우 1) 그러면 텍스트의 내용에 따라 자동 레이아웃을 통해 MasterViewController의 tableView 높이를 쉽게 자동으로 유지 관리 할 수 ​​있습니다. This tutorial에는 아주 좋은 설명이 있습니다.

2) MasterViewcontroller tableView의 셀 중 하나에 tableView를 추가하는 경우 까다로운 작업이됩니다. 이제 MasterViewController의 셀 높이는 CustomCell 테이블 뷰 높이의 내용에 따라 다릅니다. 나는 Swift 3에서 다른 방법을 적용하여이 상황을 처리하려고 시도했지만 결국 다음과 같은 방법으로 결과를 얻었습니다. -

class MasterViewController: UIViewController { 
      @IBOutlet weak var tableView: UITableView! 

      var customCell:MyCustomCell? = nil 

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "myCustomCell", for: indexPath) as! MyCustomCell 
     cell.selectionStyle = UITableViewCellSelectionStyle.none 
     customCell = cell 
     return cell 
    } 

} 

extension MasterViewController:UITableViewDelegate{ 

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 

     if let aHeight = customCell?.tableView.contentSize.height{ 
      return aHeight 
     } 

     return 0 

    } 

} 
+0

UITableView (UITableViewCell 내부에 있음)에 적용해야하는 제약 사항은 무엇입니까? –

+0

그냥 리드, 트레일, 상단, 하단을 0에 추가 할 수 있습니다. – skJosh

+0

나는 그것을했지만 테이블 뷰의 높이가 이제 0입니다. –

관련 문제