2016-06-21 155 views
0

我想顯示項目的流動列表。項目圖像的寬度應該是屏幕的寬度,高度應該使圖像不被拉伸或收縮。IOS設置單元格高度取決於url圖像高度寬度比率

項目圖像的下方應該是項目的名稱和擁有該項目的用戶的用戶名。

我完成了大部分工作。唯一的問題是設置collectionView卡的高度(非動態)。所以圖像通常會溢出卡或不填滿所有卡的高度,並有空白。

是否有某種方式來改變卡的高度取決於圖像的高度?

這是我itemCellView稱爲「CollViewCell」:

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碼語義是從左到右

回答

0

只要你能夠計算圖像高度,你可以嘗試使用estimatedItemSize的一個UICollectionViewFlowLayout及其代理功能collectionView:layout:sizeForItemAtIndexPath:

告訴您的收集視圖使用流佈局並返回estimatedItemSize的平均單元大小。然後,在collectionView:layout:sizeForItemAtIndexPath:中,您將使用計算圖像大小來確定您的收藏查看項目的實際大小。裏面的UIImageView應該利用自動佈局來填充增加的尺寸。

相關問題