gpt4 book ai didi

iphone - UIView 动画中的 setFrame 不移动,只捕捉到位

转载 作者:太空狗 更新时间:2023-10-30 03:49:40 25 4
gpt4 key购买 nike

在我的 viewDidLoad 方法中,我将一个按钮放在 View 左侧,屏幕外。

然后我使用这两种方法来制作动画:

-(void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];

[self showButton];
}

方法:

-(void) showButton {
[myButton setTitle:[self getButtonTitle] forState:UIControlStateNormal];

// animate in
[UIView beginAnimations:@"button_in" context:nil];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDone)];
[UIView setAnimationDuration:1.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationBeginsFromCurrentState:YES];
[myButton setFrame:kMyButtonFrameCenter]; // defined CGRect
[UIView commitAnimations];
}

按钮立即出现并且没有动画。此外,animationDone 选择器会立即被调用。

为什么它不将我的按钮动画化到屏幕上?

编辑:这与在 viewDidAppear 中尝试启动动画有关...

最佳答案

我试过你的动画代码,效果很好。

在哪里设置按钮的初始帧?在开始动画之前,您是否可能错误地将按钮的框架设置为 kMyButtonFrameCenter?这可以解释为什么立即调用 animationDone 选择器。

这是有效的代码:

-(void) showButton {
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[myButton setTitle:@"test" forState:UIControlStateNormal];
myButton.frame = CGRectMake(-100.0, 100.0, 100.0, 30.0);
[self.view addSubview:myButton];

// animate in
[UIView beginAnimations:@"button_in" context:nil];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDone)];
[UIView setAnimationDuration:1.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationBeginsFromCurrentState:YES];
[myButton setFrame:CGRectMake(100.0, 100.0, 100.0, 30.0)];
[UIView commitAnimations];
}

如您所见,我没有更改您的动画代码中的任何内容。所以我认为问题出在按钮的框架上。

有点题外话:如果您还没有为 iOS < 4 构建应用程序,您可能想看看 iOS 4.0 附带的 UIView 的“ block 动画”。

[UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationCurveEaseIn animations:^void{myButton.frame = kMyButtonFrameCenter} completion:^(BOOL completed){NSLog(@"completed");}];

=== 编辑 ===

看了你的评论,看来我的怀疑是不对的。 inspire48他的回答指出了正确的方向。您应该将按钮的位置放在 viewDidAppear 方法或 showButton 方法中,以确保按钮 before 放在屏幕外你叫动画

关于iphone - UIView 动画中的 setFrame 不移动,只捕捉到位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6763068/

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