gpt4 book ai didi

ios - UITableViewCell 中的 UIView 动画

转载 作者:可可西里 更新时间:2023-11-01 03:07:06 24 4
gpt4 key购买 nike

我正在开发一个 iOS 应用程序,在一个 View 中有一个 UITableView 和两个自定义 UITableViewCell。所有这些都使用主 Storyboard。

一切正常。但我需要在 just one 单元格的一个 UIView 中实现单个淡入/淡出动画。

目前我正在使用此代码来为 View 设置动画:

[UIView animateWithDuration:1.2
delay:0
options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveEaseInOut animations:^{

self.myView.alpha = 0;

} completion:^(BOOL finished) {

self.myView.alpha = 1;

}];

UITableViewtableView:cellForRowAtIndexPath: 数据源方法中调用的“设置内容”方法中。

动画效果不错。即使 View 之间发生变化, View 仍然具有动画效果。我的问题是当我从 TableView 重新加载数据或 TableView 向上或向下滚动直到带有动画的单元格消失并且它必须重用该单元格以再次显示它时,在那一刻该单元格没有动画显示。

我在这里缺少什么?有没有更好的方法来实现这个?表格 View 重用单元格后如何重新启动动画?

我认为很重要的一点是,根据我的 UI 设计,只有一个单元格会有动画。

谢谢。

最佳答案

我认为你应该再实现一个 UITableViewdelegate 方法,它是 -

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

& 在其中相应单元格的相应 View 上执行动画。

每次显示单元格时都会调用下面的方法,(如果它离开 TableView 的框架并返回到可见区域也是如此)

-(void) tableView:(UITableView *) tableView willDisplayCell:(UITableViewCell *) cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
//row number on which you want to animate your view
//row number could be either 0 or 1 as you are creating two cells
//suppose you want to animate view on cell at 0 index
if(indexPath.row == 0) //check for the 0th index cell
{
// access the view which you want to animate from it's tag
UIView *myView = [cell.contentView viewWithTag:MY_VIEW_TAG];

// apply animation on the accessed view
[UIView animateWithDuration:1.2
delay:0
options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveEaseInOut animations:^
{
[myView setAlpha:0.0];
} completion:^(BOOL finished)
{
[myView setAlpha:1.0];
}];
}
}

关于ios - UITableViewCell 中的 UIView 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29404586/

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