0
當draw
方法下面的代碼內註釋掉視圖顯示了圓形的,但是當它未被註釋出視圖爲矩形再次顯示出來。我可以將draw
的主體註釋掉,它只是一個空的方法,但視圖仍然會顯示爲矩形。iOS的舍入的UIView角隨拉伸啓用
我試過將cornerRadius
一行移至draw
的末尾,draw
開始,drawInnerCircle
結束,但無濟於事。我想知道是否仍然有一種方法可以使draw
方法啓用視圖四捨五入?
import UIKit
class IconView: UIView {
override init(frame:CGRect) {
super.init(frame : frame)
self.backgroundColor = UIColor(red: 47/255, green: 49/255, blue: 53/255, alpha: 1.0)
self.layer.cornerRadius = self.frame.size.height/2.0
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override func draw(_ rect: CGRect) {
drawInnerCircle()
}
internal func drawInnerCircle() ->() {
let halfSize:CGFloat = min(self.frame.size.width/2, bounds.size.height/2)
let desiredLineWidth:CGFloat = 1 // your desired value
let circlePath = UIBezierPath(
arcCenter: CGPoint(x:halfSize,y:halfSize),
radius: CGFloat(halfSize - 3),
startAngle: CGFloat(0),
endAngle:CGFloat(M_PI * 2),
clockwise: true)
let shapeLayer = CAShapeLayer()
shapeLayer.path = circlePath.cgPath
shapeLayer.fillColor = UIColor.clear.cgColor
shapeLayer.strokeColor = UIColor(red: 96/255, green: 99/255, blue: 105/255, alpha: 1.0).cgColor
shapeLayer.lineWidth = desiredLineWidth
layer.addSublayer(shapeLayer)
}
}
你有沒有試過給'shapeLayer'角也? – Tj3n
的shapeLayer是一個小圈子所以它在技術上沒有角 – stumped
親愛難倒了,目前你隨時添加一個新圖層,你的觀點,當它被重繪(這可能會很經常發生)。請刪除舊圖層或保留「舊」圖層。 – Lepidopteron