2015-02-10 77 views
2

就這樣做:的UIImageView的層邊界可見插圖

self.imageView.backgroundColor = color1; 
self.imageView.layer.masksToBounds = YES; 
self.imageView.layer.borderColor = color1; 
self.imageView.layer.borderWidth = 3.0; 

這是問題的截圖:

Screenshot of a problem

我能看到圖像,邊框和圖像片段出邊界...

enter image description here enter image description here

我該如何解決?

+0

你是如何加入你的面具?似乎有一個掩模圖像 – 2015-02-10 14:41:31

+0

@ChanhanT問題。沒有掩蔽。只需在帶有「UIView」前面帶有彩色邊框的「UIImageView」。 – k06a 2015-02-10 14:42:48

+0

你有沒有試過直接在'UIImageView'上用邊框和cornerRadius做這個?即。 'imv.layer.cornerRadius = width/2','masksToBounds = YES',&set borderWidth,borderColor? – Jack 2015-02-10 15:35:43

回答

0

嘗試:

self.imageView.layer.shouldRasterize = TRUE; 
+0

這不會改變:( – k06a 2015-02-10 14:59:18

+0

請問您可以分享更多的代碼嗎 – RZO92 2015-02-10 15:11:35

2

我不得不使用層上邊框屬性類似的問題,並設法在上面添加CAShapeLayer來解決它。
我不能告訴你它是如何在較舊的設備上運行的,因爲它沒有用很多動畫等進行過測試,但我真的懷疑它會減慢它們的速度。

這裏是斯威夫特一些代碼:

imageView.backgroundColor = UIColor(red: 0.1137, green: 0.2745, blue: 0.4627, alpha: 1.0) 
    imageView.layer.masksToBounds = true 
    imageView.layer.cornerRadius = imageView.bounds.height/2.0 

    let stroke:CAShapeLayer = CAShapeLayer() 
    let rect = imageView.bounds 
    let strokePath = UIBezierPath(roundedRect: rect, cornerRadius: imageView.bounds.height/2.0) 

    stroke.path = strokePath.CGPath 
    stroke.fillColor = nil 
    stroke.lineWidth = 3.0 
    stroke.strokeColor = UIColor(red: 0.1137, green: 0.2745, blue: 0.4627, alpha: 1.0).CGColor 

    stroke.frame = imageView.bounds 
    imageView.layer.insertSublayer(stroke, atIndex: 1) 

希望它會在你的情況下工作,以及