2016-12-21 3 views
0

나는 UITableView이 있습니다. 그 속에는 하나의 라벨이 있습니다. 내가 뭐하는 거지 레이블 다음 제로UILable의 높이를 기준으로 UITableView의 높이를 조정하는 방법은 무엇입니까?

  • 에 선

    1. 설정 번호가

    2. 설정 아래 공간 컨테이너 마진

    에 컨테이너 여백 위쪽 공간을 설정 내 UILabel의 내용은 다를 수 있습니다. 3 줄, 몇 줄, 10 줄 등이있을 수 있습니다. 내 문제는 2 줄만 표시된다는 것입니다. UILabel가 전체 내용을 표시하도록 셀의 높이를 조정하는 방법.

    미리 감사드립니다.

  • +0

    http://stackoverflow.com/questions/40034506/how-to-resize-table-cell-based-on-textview/40035858#40035858이 대답을 참조하십시오. –

    +0

    http://stackoverflow.com/a/39888662/ 6656894 또한이 대답을 참조하십시오. @ek –

    답변

    1

    numberoflines를 0으로 설정해야합니다. & 레이블 또는 고정 폭 제약에 대한 후행 제약 조건과 함께 맨 아래 & 아래 공간 제약 조건을 제공하십시오. 그런 다음 사용 tableView.estimatedRowHeight = 44.0 tableView.rowHeight = UITableViewAutomaticDimension

    +0

    참고로 https://www.appcoda.com/self-sizing-cells/ –

    +0

    을 참조하십시오. 작동하지만 고맙습니다. 왜 estimatedRowHeight를 설정해야합니까? –

    +1

    autolayout 제약 조건 및 레이블 크기에 따라 높이를 계산합니다. –

    0

    레이블의 제약 조건을 셀의 맨 위 아래쪽 앞과 뒤쪽과 같이 설정하고 레이블 줄 수를 0으로 설정하고 줄 바꿈 모드를 줄 바꿈으로 설정합니다. 이제이 두 tableView 메소드를 배치하여 셀 높이를 동적으로 계산하십시오. 당신이 원하는대로

    -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
        return UITableViewAutomaticDimension; 
    } 
    
    -(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
        return UITableViewAutomaticDimension; 
    } 
    

    목적 C에 대한

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

    스위프트 3.0를 들어

    그래서 동적으로 셀 크기를 취할 것입니다.

    희망이 도움이 될 것입니다.

    관련 문제