gpt4 book ai didi

iphone - ios 动画 Objective-C

转载 作者:行者123 更新时间:2023-11-29 04:53:46 25 4
gpt4 key购买 nike

我有一个全局变量p。我有一个函数可以根据此全局变量的值绘制(或重绘)复杂的 UIView 对象。当我增加 p 时,我的 uiview 对象需要重新绘制。我需要使用动画来完成此操作。

double pInitialValue=0.5;
double pNewValue=1.0;

//somewhere before animation we must call [self redraw] to draw our view with p=pInitialValue;

//then, when we call animate function.
//we change p to pNewValue
//and every step must be redrawed using [self redraw]

p=pNewValue; //using animation p must slowly grow from pInitialValue to pNewValue
[self redraw]; //and ofcourse user must see every step of animation so we need to call redraw function

例如,我需要一个持续时间为 4 的动画。这意味着在这 4 秒内,我的 p 必须从 pInitialValue 增长到 pNewValue,并且在每一步中都必须调用我的重绘函数

请帮帮我。怎么办?

最佳答案

您可以使用计时器来增加您的p值。这样做:在类中定义一个实例变量,如下所示

NSTimer *timer;

之后,就在您希望动画发生之前执行以下操作:

CGFloat timerInterval = 1 / 30; // This means 30 frames per second. Change this as you want.
timer = [NSTimer scheduledTimerWithTimeInterval:timerInterval target:self selector:@selector(increaseP) userInfo:nil repeats:YES];

而不是有一个名为 increaseP 的方法,如下所示:

- (void)increaseP
{
if (p < maxPValue) {
// Increase p here and redraw your things
}
else {
[timer invalidate];
}
}

如果您有任何疑问以及这是否适合您,请告诉我。

关于iphone - ios 动画 Objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8387388/

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