2016-11-26 5 views
1

최근에 앱에서 컬렉션보기를 구현했지만 컬렉션보기가 양면에 패딩이 많은 작은 기기에서 2 열에서 1 열로 이동하는 경우에만 발생합니다.Swift 3 CollectionView scaling

를 heres 아이폰 6보다 작은 디스플레이에

: enter image description here

과를 heres는 아이폰 6 크거나 같은 화면에서 보는 방법 : I 디스플레이 폭이 있다면 여러 가지 방법을 시도 않았다 enter image description here

작고 특정 번호 woul d는 셀을 확장하지만 셀이 실제로 확장되었지만 중심에 있지 않고 오버랩되는 셀 때문에 작동하지 않습니다.

답변

2

. 나는 동적으로 크기를 변경하려고 할 때

class YourClass: UIViewController { 
     //MARK:-Outlets 
     @IBOutlet weak var yourCollectionView: UICollectionView! 

     //Mark:-Variables 
     var cellWidth:CGFloat = 0 
     var cellHeight:CGFloat = 0 
     var spacing:CGFloat = 12 
     var numberOfColumn:CGFloat = 2 


     //MARK:-LifeCycle 
     override func viewDidLayoutSubviews() { 
      super.viewDidLayoutSubviews() 

      yourCollectionView.contentInset = UIEdgeInsets(top: spacing, left: spacing, bottom: spacing, right: spacing) 

      if let flowLayout = yourCollectionView.collectionViewLayout as? UICollectionViewFlowLayout{ 
       cellWidth = (yourCollectionView.frame.width - (numberOfColumn + 1)*spacing)/numberOfColumn 
       cellHeight = cellWidth //yourCellHeight = cellWidth if u want square cell 
       flowLayout.minimumLineSpacing = spacing 
       flowLayout.minimumInteritemSpacing = spacing 
      } 
     } 

    extension YourClass:UICollectionViewDelegateFlowLayout{ 
      func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
       return CGSize(width: cellWidth, height: cellHeight) 
      } 
    } 
+0

콜렉션 뷰에 대해 한 줄로 설명하고 셀 높이를 변경할 수 있습니까? 부디? –

2

휴대 전화 크기에 따라 크기를 계산해야합니다. 두 셀의 너비가 화면 크기보다 큰 경우 (둘 사이의 모든 오프셋 포함) 첫 번째 사진과 같이 레이아웃됩니다.

당신은 두 가지 옵션이 있습니다 하나는 두 그대로두고 크기 처리 및 장치의 크기에 따라 세포 크기를 조정하는 것입니다 - iphone6 ​​/ 6S/7에 대한 작은 변경합니다.

처음으로 옵트 아웃하는 경우, 가로 또는 세로 비율 (이미지를 조금자를 수 있음)의 크기 제한을 설정해야합니다. 보다 구체적인 https://developer.apple.com/reference/uikit/uicollectionviewdelegateflowlayout

: 동적으로 크기를 변경하는

는 좀 봐 당신은 width.Try이 코드 셀을 계산해야 https://developer.apple.com/reference/uikit/uicollectionviewdelegateflowlayout/1617708-collectionview

+0

아무것도 변경되지 :/ –

+0

은 세포 사이의 측면에서 오프셋 거리를 포함 있나요? 쉽게 확인할 수 있지만 너비를 20이나 그와 비슷한 것으로 설정하면 – Miknash

+0

@ NickCatib 링크 대신 링크를 제공하십시오. –

관련 문제