簡體   English   中英

如何啟動函數 drawRect(rect: CGRect) ? 迅速

[英]How to start function drawRect(rect: CGRect) ? Swift

我的應用程序中有rect:CGRect函數,我該如何使用它? 我試試

  drawRect(CGRect,x1:33.33,y1:23.45)

但在下面不起作用我的功能。

func drawRect(rect: CGRect,x1: CGFloat, y1: CGFloat) {

let center = CGPoint(x:x1/2, y: y1/2)
let radius: CGFloat = max(bounds.width, bounds.height)
let arcWidth: CGFloat = 100
let startAngle: CGFloat = 3 * π / 5.99
let endAngle: CGFloat = π / 1.40

let path = UIBezierPath(arcCenter: center,
                        radius: radius/2 - arcWidth/2,
                        startAngle: startAngle,
                        endAngle: endAngle,
                        clockwise: true)


path.lineWidth = arcWidth
counterColor.setStroke()
path.stroke()


}

您永遠不會自己調用drawRect 它在需要時由框架調用。

正確的解決方案是在視圖上調用setNeedsDisplay() 每當視圖的狀態發生變化以致於希望調用drawRect時調用此方法。

最重要的是,您有錯誤的drawRect方法。 UIView的一個只有一個參數 - CGRect

而在 Swift 3 中,它將是:

override func draw(_ rect: CGRect) {
}

你不應該調用 drawRect()。 當要查看重繪時,調用 setNeedsDisplay() 方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM