gpt4 book ai didi

ios - 在 UITableViewCell View 中动画和更改 View

转载 作者:行者123 更新时间:2023-12-02 05:38:11 26 4
gpt4 key购买 nike

假设我对 UITableViewCell 进行了子类化,并且其中有一些 View (例如 UILabel)。

已呈现。现在我想更改/动画该 View 。

|                       |         |                       |
|-----------------------| |-----------------------|
| label alpha=1.0 | animate | label alpha=0.5 |
|-----------------------| ===> |-----------------------|
| label alpha=1.0 | | label alpha=0.5 |
|-----------------------| |-----------------------|
| | | |

因此,我认为,cellForRowAtIndexPathwillDisplayCelldidEndDisplayingCell 现在都不是好的选择。

我在子类UITableViewCell中创建了一个方法animateTest,它改变了标签的样式 - 例如着色或执行一些动画。

现在在呈现表格的 View Controller 中,我尝试对表格 View subview 执行快速枚举。感谢枚举,我捕获了所有子类 UITableViewCell 实例,并使用了 performSelector 来触发 animateTest 方法。但一切都没有改变。即使执行[tableview reloadData]

如何在表格渲染后为表格单元格中的某些内容设置动画?(使用[UIView animateWithDuration.........])?

提前致谢。

最佳答案

实际上,由于单元初始化错误,什么也没有发生。

我之前通过以下方式初始化了单元格:

NSString *cellIdentifier = [NSString stringWithFormat:@"Cell%d", [indexPath section]];

CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
NSArray *topLevelObjects;
topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:nil options:nil];

for(id currentObject in topLevelObjects)
{
if([currentObject isKindOfClass:[CustomCell class]])
{
cell = (CustomCell *)currentObject;
break;
}
}

现在我以这种方式初始化单元格:

static NSString *reuseIdentifier = @"Cell";

CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier];

if (cell == nil) {
cell = [[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil] objectAtIndex:0];
}

一切工作正常,使用:

CustomCell *cell = (CustomCell*)[tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:3]];
[UIView animateWithDuration:2 animations:^{
cell.element.alpha = 0;
}];

如果有人能简单地解释第一种方法有什么问题,我将不胜感激。我怀疑单元格在初始化时以某种方式重置,因此我的更改不可见,因为旧单元格(应用了动画)被丢弃并再次生成单元格。

我前段时间从某个网站复制了代码片段,所以我习惯了使用它,但显然这不是一个很好的实现。

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

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