2016-06-21 5 views
0

항목이 흐르는 목록을 표시하려고합니다. 항목 이미지의 너비는 화면의 너비이어야하며 높이는 이미지가 늘어나거나 줄어들지 않는 높이 여야합니다.IOS 설정 URL에 의존 할 셀 높이 이미지의 너비 비율

아래의 항목 이미지는 항목의 이름과 해당 항목을 소유 한 사용자의 사용자 이름이어야합니다.

나는 대부분이 작업을 수행했습니다. 유일한 문제는 collectionView 카드의 높이가 설정된다는 것입니다 (비 동적). 따라서 이미지는 일반적으로 카드를 오버플로하거나 모든 카드 높이를 채우지 않으며 공백이 있습니다.

이미지의 높이에 따라 카드 높이를 변경하는 방법은 무엇입니까?

다음
import UIKit 
import AlamofireImage 

class CollViewCell: UICollectionViewCell { 

    @IBOutlet weak var imgCell: UIImageView! 
    @IBOutlet weak var labelCell: UILabel! 
    @IBOutlet weak var labelUserNameCell: UILabel! 
} 

스토리 보드의 뷰 모드 채우기 화면으로 설정

... 
@IBOutlet weak var collectionView: UICollectionView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.viewModel.getItems(self.viewModel.getCurrentUser()) { items in 
     self.collectionView.reloadData() 

    } 
} 

... 

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 

    let cell: CollViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! CollViewCell 
    cell.labelCell.text = self.viewModel.tableDict[indexPath.row]![0] 
    let imageUrl = NSURL(string: self.viewModel.tableDict[indexPath.row]![1]) 
    cell.imgCell.af_setImageWithURL(imageUrl!, placeholderImage: nil, filter: nil, imageTransition: .CrossDissolve(0.2)) 
    cell.labelUserNameCell.text = self.viewModel.tableDict[indexPath.row]![2] 

    return cell 
} 
... 

컬렉션과 함께 할 수있는의 ViewController 코드 : 여기

는 "CollViewCell"라고 내 itemCellView입니다 시맨틱은 왼쪽에서 오른쪽

답변

0

이미지 높이를 계산할 수있는 한 estimatedItemSize의 0 조합및 그 대리자 기능은 collectionView:layout:sizeForItemAtIndexPath:입니다.

플로우 레이아웃을 사용하고 estimatedItemSize의 평균 셀 크기를 반환하도록 콜렉션 뷰에 알립니다. 그런 다음 collectionView:layout:sizeForItemAtIndexPath:에서 계산 된 이미지 크기를 사용하여 컬렉션보기 항목의 실제 크기를 결정합니다. UIImageView 내부는 증가 된 크기를 채우기 위해 자동 레이아웃을 활용해야합니다.

관련 문제