UICollectonView 높이를 조정하는 방법은 레이블 크기에 따라 다릅니다.

pmb

내 코드에서 머리글과 바닥 글이있는 UICollectonView를 만들었습니다.

내 바닥 글 높이는 텍스트 크기에 따라 동적이어야합니다.

텍스트는 1 줄에서 100 줄까지 가능합니다.

다음은 내 코드입니다.

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForFooterInSection section: Int) -> CGSize {
        return CGSize(width:collectionView.frame.size.width, height:50.0)
    }

func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {

        switch kind {                        
            case UICollectionElementKindSectionFooter:
                let footer = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionElementKindSectionFooter, withReuseIdentifier: "SectionFooterCollectionReusableView", for: indexPath) as! SectionFooterCollectionReusableView

                footer.lblDescription.text = composition?.desc
                return footer


            default: return UICollectionReusableView()
        }        
    }
타 라스 체르니 셴코

문자열 확장에 기능을 추가 할 수 있습니다.

extension String {

    func heightWithConstrainedWidth(_ width: CGFloat, font: UIFont) -> CGFloat {
        let constraintRect = CGSize(width: width, height: CGFloat.greatestFiniteMagnitude)
        let boundingBox = self.boundingRect(with: constraintRect, options: .usesLineFragmentOrigin,
            attributes: [NSFontAttributeName: font], context: nil)
        return boundingBox.height
    }
}

그런 다음 귀하의 방법에서 텍스트 높이를 계산하십시오.

func collectionView(_ collectionView: UICollectionView,
    layout  collectionViewLayout: UICollectionViewLayout, referenceSizeForFooterInSection section: Int) -> CGSize {
    if let string = composition?.desc {
        let height = string.heightWithConstrainedWidth(width, font: font)
        //calculate needed height
        return CGSize(width:collectionView.frame.size.width, height:neededHeight)
    }
    return CGSize(width:collectionView.frame.size.width, height:50.0)
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

셀 높이를 늘리는 방법은 셀 내용에 따라 다릅니다.

분류에서Dev

페이지 높이에 따라 텍스트 크기를 조정하는 방법은 무엇입니까?

분류에서Dev

높이를 자동으로 만드는 방법은 화면 해상도에 따라 다릅니다.

분류에서Dev

div 높이는 다른 div 높이에 따라 다릅니다.

분류에서Dev

같은 파일은 여는 방법에 따라 내용이 다릅니다.

분류에서Dev

ImageView 자동 높이 설정은 이미지 너비에 따라 다릅니다.

분류에서Dev

컨테이너 크기에 따라 너비와 높이를 설정하는 방법은 무엇입니까?

분류에서Dev

목표 c 이미지 크기에 따라 이미지보기 크기 (높이)를 조정하는 방법

분류에서Dev

신속하게 셀의 이미지에 따라 CollectionView 셀 높이의 크기를 조정하는 방법은 무엇입니까?

분류에서Dev

화면 높이에 따라 div를 조정하는 방법

분류에서Dev

콘텐츠 CSS에 따라 높이를 조정하는 방법

분류에서Dev

부모 높이 / 너비 변경에 따라 내부 요소를 조정하는 방법은 무엇입니까?

분류에서Dev

너비를 설정하는 방법은 Ext.panel.Panel의 높이에 따라 달라집니다.

분류에서Dev

한 절차에서 다른 작업을 수행하는 방법은 이벤트에 따라 다릅니다.

분류에서Dev

크기를 얻는 방법은 MongoDB의 일부 조건에 따라 다릅니다.

분류에서Dev

뷰포트 높이에 따라 이미지 크기를 줄이는 방법은 무엇입니까?

분류에서Dev

내 Pig 입력 데이터의 유효성을 검사하는 방법은 dml에 따라 다릅니다.

분류에서Dev

내 Pig 입력 데이터의 유효성을 검사하는 방법은 dml에 따라 다릅니다.

분류에서Dev

조건부 점프 또는 이동은 초기화되지 않은 값 및 유효하지 않은 크기 쓰기에 따라 다릅니다.

분류에서Dev

twitter-bootstrap row-fluid는 자식 크기에 따라 높이를 조정하지 않습니다.

분류에서Dev

동적 페이지 크기는 내부 메뉴 항목 높이에 따라 다릅니다.

분류에서Dev

생성 버튼은 클릭 한 VB를 수행하는 방법에 따라 데이터의 행에 따라 다릅니다.

분류에서Dev

뷰 박스 또는 svg 태그의 높이 너비에 따라 도면 크기를 조정하는 방법

분류에서Dev

많은 조건이 WHERE 절 내의 IF 절에 따라 다릅니다.

분류에서Dev

조건 레일에 따라 테이블 행에 클래스를 추가하는 방법은 무엇입니까?

분류에서Dev

Hbase 테이블의 조건에 따라 레코드를 검색하는 방법은 무엇입니까?

분류에서Dev

Valgrind + C : 조건부 점프 또는 이동은 초기화되지 않은 값에 따라 다릅니다.

분류에서Dev

짧은 레이블에 따라 긴 텍스트 레이블을 래핑하는 방법은 무엇입니까?

분류에서Dev

다른 레이블 배열에 따라 레이블이있는 개체 배열을 정렬하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    셀 높이를 늘리는 방법은 셀 내용에 따라 다릅니다.

  2. 2

    페이지 높이에 따라 텍스트 크기를 조정하는 방법은 무엇입니까?

  3. 3

    높이를 자동으로 만드는 방법은 화면 해상도에 따라 다릅니다.

  4. 4

    div 높이는 다른 div 높이에 따라 다릅니다.

  5. 5

    같은 파일은 여는 방법에 따라 내용이 다릅니다.

  6. 6

    ImageView 자동 높이 설정은 이미지 너비에 따라 다릅니다.

  7. 7

    컨테이너 크기에 따라 너비와 높이를 설정하는 방법은 무엇입니까?

  8. 8

    목표 c 이미지 크기에 따라 이미지보기 크기 (높이)를 조정하는 방법

  9. 9

    신속하게 셀의 이미지에 따라 CollectionView 셀 높이의 크기를 조정하는 방법은 무엇입니까?

  10. 10

    화면 높이에 따라 div를 조정하는 방법

  11. 11

    콘텐츠 CSS에 따라 높이를 조정하는 방법

  12. 12

    부모 높이 / 너비 변경에 따라 내부 요소를 조정하는 방법은 무엇입니까?

  13. 13

    너비를 설정하는 방법은 Ext.panel.Panel의 높이에 따라 달라집니다.

  14. 14

    한 절차에서 다른 작업을 수행하는 방법은 이벤트에 따라 다릅니다.

  15. 15

    크기를 얻는 방법은 MongoDB의 일부 조건에 따라 다릅니다.

  16. 16

    뷰포트 높이에 따라 이미지 크기를 줄이는 방법은 무엇입니까?

  17. 17

    내 Pig 입력 데이터의 유효성을 검사하는 방법은 dml에 따라 다릅니다.

  18. 18

    내 Pig 입력 데이터의 유효성을 검사하는 방법은 dml에 따라 다릅니다.

  19. 19

    조건부 점프 또는 이동은 초기화되지 않은 값 및 유효하지 않은 크기 쓰기에 따라 다릅니다.

  20. 20

    twitter-bootstrap row-fluid는 자식 크기에 따라 높이를 조정하지 않습니다.

  21. 21

    동적 페이지 크기는 내부 메뉴 항목 높이에 따라 다릅니다.

  22. 22

    생성 버튼은 클릭 한 VB를 수행하는 방법에 따라 데이터의 행에 따라 다릅니다.

  23. 23

    뷰 박스 또는 svg 태그의 높이 너비에 따라 도면 크기를 조정하는 방법

  24. 24

    많은 조건이 WHERE 절 내의 IF 절에 따라 다릅니다.

  25. 25

    조건 레일에 따라 테이블 행에 클래스를 추가하는 방법은 무엇입니까?

  26. 26

    Hbase 테이블의 조건에 따라 레코드를 검색하는 방법은 무엇입니까?

  27. 27

    Valgrind + C : 조건부 점프 또는 이동은 초기화되지 않은 값에 따라 다릅니다.

  28. 28

    짧은 레이블에 따라 긴 텍스트 레이블을 래핑하는 방법은 무엇입니까?

  29. 29

    다른 레이블 배열에 따라 레이블이있는 개체 배열을 정렬하는 방법은 무엇입니까?

뜨겁다태그

보관