2017-10-28 114 views
0

我有一個UIView,其中有一個UIImageViewCircular UIImageView在某些設備上是正方形的

我設置UIImageView是圓形的,並添加邊框像這樣:

self.profilePicImageView.layer.cornerRadius = self.profilePicImageView.frame.size.height/2 
self.profilePicImageView.layer.masksToBounds = true 

self.profilePicImageView.layer.borderColor = UIColor.white.cgColor 
self.profilePicImageView.layer.borderWidth = 3 

它被稱爲後我初始化我viewController的觀點之前,我將它添加爲子視圖(函數調用setupUI() )。

它在大多數設備上都能很好地工作,但在大屏幕設備(iPhone 6/6s/7 Plus和iPhone X)上,我獲得了正確的邊框,但圖像本身不是圓形的。

請看例子:

普通的iPhone:

Regular

大型的iPhone(iPhone 6/6S/7 Plus和iPhone X):

Large

任何想法可能是什麼問題,我該如何解決它?

謝謝!

+0

@ FS.06 I'hd也面臨這樣的問題,所以添加下面一行代碼 self.profilePicImageView.contentMode = .scaleAspectFill self.profilePicImageView.clipsToBounds =真 –

+0

@ FS.O6請嘗試我的編輯答案,這是爲我工作 – SPatel

回答

0

這只是因爲你的內容模式 嘗試不同的contentMode像

imageView.autoresizingMask = [.flexibleWidth, .flexibleHeight, .flexibleBottomMargin, .flexibleRightMargin, .flexibleLeftMargin, .flexibleTopMargin] 
imageView.contentMode = .scaleAspectFit // OR .scaleAspectFill 
imageView.clipsToBounds = true 
-1

創建自定義的ImageView類,如:

@IBDesignable class RoundedImageView:UIImageView { 
    @IBInspectable var borderColor:UIColor = UIColor.white { 
     willSet { 
      layer.borderColor = newValue.cgColor 
     } 
    } 
    override func layoutSubviews() { 
     super.layoutSubviews() 
     layer.cornerRadius = frame.height/2 
     layer.masksToBounds = true 
     layer.borderWidth = 1 
     layer.borderColor = borderColor.cgColor 
    } 
} 

並設置ImageView的自定義類 「RoundedImageView」。

相關問題