UIView 动画提前终止

发布于 2024-11-18 18:25:33 字数 487 浏览 3 评论 0原文

我正在尝试使用 +[UIView animateWithDuration:animations:] 方法将 UITableViewCell 的背景颜色从白色设置为红色。但是,颜色不会动画,它会立即跳到红色。我已将 setBackgroundColor: 替换为 setOpacity: 并且效果很好。是什么导致动画无法使用背景颜色?下面是我正在使用的代码:

UITableView * tableView = (UITableView *)[self view];
[UIView animateWithDuration:0.2 animations:^{
  [[tableView cellForRowAtIndexPath:
    [NSIndexPath indexPathForRow:0 inSection:0]] 
      setBackgroundColor:[UIColor redColor]];
}];

I'm trying to use the +[UIView animateWithDuration:animations:] method to animate a UITableViewCell's background colour from white to red. However, the colour will not animate, it immediately jumps to red. I've switched out setBackgroundColor: for setOpacity: and that works fine. What could be causing the animation to fail using background colour? Below is the code I'm using:

UITableView * tableView = (UITableView *)[self view];
[UIView animateWithDuration:0.2 animations:^{
  [[tableView cellForRowAtIndexPath:
    [NSIndexPath indexPathForRow:0 inSection:0]] 
      setBackgroundColor:[UIColor redColor]];
}];

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

流殇 2024-11-25 18:25:33

您无法对颜色属性的更改进行动画处理。您必须创建两个背景视图并使用它们的 .alpha 属性在它们之间淡入淡出。

You cannot animate changes to color properties. You will have to create two background views and fade between them using their .alpha properties.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文