2016-05-24 126 views
0

问题:重装上阵在UICollectionViewCell缓存的UIImageView(滚动 UICollectionViewController之间切换期间)不保持正确的contentMode。保留图像纵横比在UICollectionViewCell

我尝试在UIImageView上使用.sizeToFit(),并在每次加载时重置.contentMode = UIViewContentMode.ScaleAspectFit,但这没有帮助。

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

    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("myCell", forIndexPath: indexPath) as! MyCollectionViewCell 

    if (indexPath.item < self.the_array?.count){ 

     if (images_cache[self.the_array![indexPath.item].src!] != nil){ 
      // calling this here doesn't work 
      cell.myImage.contentMode = UIViewContentMode.ScaleAspectFit 
      // calling this here doesn't work either 
      cell.myImage.sizeToFit() 
      cell.myImage.image = images_cache[self.the_array![indexPath.item].src!]! as UIImage 
     } 
     else{ 
      if let url = NSURL(string: "https:" + (self.the_array![indexPath.item].src)!), data = NSData(contentsOfURL: url) { 
       let the_image = UIImage(data: data) 
       cell.myImage.image = the_image 
       images_cache[self.the_array![indexPath.item].src!] = the_image! 
      } 
     } 
    } 
    return cell 
} 

回答

0

解决方案:设置的UIImage的基础上,电池的大小.frame!

cell.myImage.frame = CGRect(x: 0, y: 0, width: cell.frame.width, height: cell.frame.height) 

我把那行,我有.sizeToFit()和/或.contentMode现在它正确地保留图像。