gpt4 book ai didi

ios - 如何为在 iOS 中的 drawRect 函数中创建的简单 Wave 制作动画

转载 作者:可可西里 更新时间:2023-10-31 23:44:20 26 4
gpt4 key购买 nike

我正在使用 drawRect 方法绘制波浪,但它突然出现在屏幕上。我想制作波浪创建过程的动画,例如波浪应该逐步缓慢创建,以便用户可以看到它。
这是我用来绘制波浪的代码

override func drawRect(rect: CGRect) {

let context = UIGraphicsGetCurrentContext()
CGContextSetLineWidth(context, 2.0)
GContextSetStrokeColorWithColor(context, UIColor.redColor().CGColor)
var startX : CGFloat = 10
var EndX : CGFloat = 30
var CpX : CGFloat = 20
var CpY : CGFloat = 160
var Y : CGFloat = 200

for(var i = 0 ; i<5 ; i++ )
{
CGContextMoveToPoint(context, startX, Y)
CGContextAddQuadCurveToPoint(context, CpX, 160, EndX, 200)
CGContextStrokePath(context)
startX += 20
CpX += 20
EndX += 20

CGContextMoveToPoint(context, startX, Y)
CGContextAddQuadCurveToPoint(context, CpX, 240, EndX, 200)
CGContextStrokePath(context)
CpX += 20
startX += 20
EndX += 20

}
}

this is how it looks on screen

最佳答案

可以将绘图函数放在后台任务中,并加一个时间延迟,但需要刷新屏幕时需要调用主任务。

正如您在此处看到的那样,这只会向您展示分 5 个部分构建的波浪,因此如果您希望看到更小的增量,您可能需要返回到更基本的三角函数

y = yCentre + sin(x * radScalingFactor) * heightScalingFactor

或者,您可以按原样绘制波浪,并使用带有时间延迟循环的后台任务来逐渐移除覆盖在顶部的不透明 View

关于ios - 如何为在 iOS 中的 drawRect 函数中创建的简单 Wave 制作动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34491230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com