繁体   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