gpt4 book ai didi

objective-c - animateWithDuration 立即完成

转载 作者:技术小花猫 更新时间:2023-10-29 10:08:25 25 4
gpt4 key购买 nike

我知道很多人都问过同样的问题,但提议的解决方案似乎都不相关,所以我再问一次:我有以下代码块:

UIImageView *moneyHolder = [[UIImageView alloc] initWithImage:moneyImage];    
if([paymentMethod.viewed intValue] == 0){
//CGRect targetFrame = CGRectMake(0, cell.frame.size.height/2-3, cell.frame.size.width, targetHeight);
CGRect targetFrame = moneyHolder.frame;
targetFrame.origin.y = cell.frame.size.height/2-3;
NSLog(@"animating");
[UIView animateWithDuration:2
delay:0
options: UIViewAnimationCurveEaseOut
animations:^{
moneyHolder.frame = targetFrame;
}
completion:^(BOOL finished){
NSLog(@"done");
}
];
}

我认为应该为我的 moneyHolder 框架设置动画。不幸的是,这似乎是立即发生的,而不是持续 2 秒。我可以使用日志中的时间戳来验证这一点:

2012-05-11 03:41:50.102 AgilePoet[5824:15203] 动画
2012-05-11 03:41:50.116 AgilePoet[5824:15203] 完成

有没有人对为什么会发生这种情况有任何想法?关于该主题的所有其他问题都集中在不可设置动画的属性上,但我知道 imageview 框架是可设置动画的。我唯一能想到的就是这段代码写在我的

-tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath method. 

提前致谢!

最佳答案

引用文档:

frame The frame rectangle, which describes the view’s location and size in its superview’s coordinate system.

Changes to this property can be animated. However, if the transform property contains a non-identity transform, the value of the frame property is undefined and should not be modified. In that case, you can reposition the view using the center property and adjust the size using the bounds property instead.

如果您或其他一些代码更改了 View 的变换矩阵,则对 frame 属性的更改不会按预期工作。

您应该改为更改中心属性(以移动 View )和边界属性(以更改其大小)。这些属性的行为符合预期。

关于objective-c - animateWithDuration 立即完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10548307/

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