티스토리 뷰

[iOS 오토레이아웃 가이드] Advanced Auto Layout - Working with Self-Sizing Table View cells

오토레이아웃으로 table view cell의 높이를 지정할 수 있습니다. 이는 기본적으로 돼 있지 않아서 추가적으로 코드를 적어줘야 합니다. 

기본적으로 table view cell의 높이는 table view delegate method 중의 하나인 tableview:heightForRowAtIndexpath 메소드가 정합니다. cell 높이가 유동적으로 변하게 하기 위해서는 다음과 같이 해줘야 합니다.

  • tableView.estimatedRowHeight = 85.0
  • tableView.rowHeight = UITableViewAutomaticDimension

  • 그 다음 cell의 아이템들을 넣습니다. cell의 높이를 지정하기 위해서는, 유효한 제약조건이 있어야 하고 높이가 지정돼 cell content view의 top과 bottom을 채울 수 있는 뷰가 필요합니다. 만약 뷰가 intrinsic content height가 있으면 시스템은 그걸 사용합니다. 만약 없다면 적절한 높이 제약조건을 뷰와 cell의 content view에 줘야 합니다.



    추가적으로 estimatedRowHeight는 가능한 정확하게 주는 게 좋습니다. 오토레이아웃 엔진이 그 값을 바탕으로 계산하기 때문입니다. 값이 정확하면 정확할수록 원할하게 만들어집니다.

    그리고 table view cell에는 미리 정의된 layout이 있습니다. textLabel, detailTextLabel, imageView인데요. 이건 바꿀 수 없습니다. 다만 다음과 같은 제약조건은 가능합니다.

    subview를 cell's content view에 거는 제약조건
    subview를 cell's bounds 에 거는 제약조건
    subview를 cell's predefined content 에 거는 제약조건



    반응형
    공지사항
    최근에 올라온 글
    최근에 달린 댓글
    Total
    Today
    Yesterday
    링크
    TAG
    more
    «   2024/05   »
    1 2 3 4
    5 6 7 8 9 10 11
    12 13 14 15 16 17 18
    19 20 21 22 23 24 25
    26 27 28 29 30 31
    글 보관함