2017-10-15 143 views
0

我構建了一個UIImageView擴展名,以便使用它中的圖像併爲其添加徽章。但是我真的無法做到這一點,因爲在此之後,我圍繞着UIImageView的角球半徑。我想要的是在圖像的UIImageView角落上顯示徽章。試圖在UIImageView上放置徽章

這是我要做的事:

public extension UIImageView { 
    func addBadgeRightBottom (withBadge badge: UIImage) { 

     if self.image != nil { 
      UIGraphicsBeginImageContextWithOptions(self.frame.size, false, 0.0) 
      self.image?.draw(in: CGRect(x: 0, y: 0, width: (self.frame.size.width), height: (self.frame.size.height))) 
      badge.draw(in: CGRect(x: (self.frame.size.width) - badge.size.width, y: (self.frame.size.height) - badge.size.height, width: badge.size.width, height: badge.size.height)) 
      let image = UIGraphicsGetImageFromCurrentImageContext() 
      DispatchQueue.main.async() {() -> Void in 

       self.image = image 
      } 
      UIGraphicsEndImageContext() 
     } 
    } 
} 

這就是我得到:

enter image description here

我真的想有:

enter image description here

回答

2

最後我做了一個新的徽章UIImage尺寸在同一個位置我想在其他圓形UIImageView並將其添加爲一個子視圖的我UICollectionViewCell,因爲這些資料圖片圖片都在UICollectionViewCell

不幸的是我沒有做到這一點作爲後的延伸所有。

下面是我是如何做到的。 在CelebCollectionViewCell

var celebBadgeImageView = UIImageView() 

初始化UIImageView後我初始化徽章的CGRect並添加它作爲一個子視圖

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
    let cell: CelebCollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: "celebCell", for: indexPath) as! CelebCollectionViewCell 

    cell.celebBadgeImageView.frame = CGRect(x: cell.celebImage.frame.size.width - (#imageLiteral(resourceName: "verifiedCelebrity").size.width/2), y: cell.celebImage.frame.size.height - #imageLiteral(resourceName: "verifiedCelebrity").size.height, width: #imageLiteral(resourceName: "verifiedCelebrity").size.width, height: #imageLiteral(resourceName: "verifiedCelebrity").size.height) 
    cell.celebBadgeImageView.image = #imageLiteral(resourceName: "verifiedCelebrity") 
    cell.addSubview(cell.celebBadgeImageView) 

    cell.celebImage.image = #imageLiteral(resourceName: "profile_user.jpg") 
    cell.celebImage.circularView() 

    return cell 
} 

enter image description here