gpt4 book ai didi

iOS:强制 tableView 单元格在点击时动画更改

转载 作者:行者123 更新时间:2023-11-29 05:16:35 26 4
gpt4 key购买 nike

我试图在点击附件 View 时在单元格上执行动画。点击的委托(delegate)方法正在触发,我可以让该行执行某些操作 - 更改标签,但它忽略动画(或者在另一种情况下 - 甚至不进行更改。)如何使动画正常工作?

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{

MyCustomCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

[UIView animateWithDuration:5.0
delay: 5.0
options: UIViewAnimationOptionCurveEaseIn
animations:^{
//NEXT TWO LINES HAVE NO EFFECT ON CELL SO COMMENTED OUT
//cell.nameLabel.text = @"Thank you. FIRST ANIMATE TRY";
// [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
//NEXT THREE LINES CHANGE TEXT BUT WITHOUT ANIMATION
[self.tableView beginUpdates];
cell.nameLabel.text = @"Thank you. Second try!";
[self.tableView endUpdates];
}
completion:^(BOOL finished){
NSLog(@"animation finished");
}];
}

顺便说一句,我也尝试在主队列中显式调度它,但没有效果。它应该已经在主队列中。

最佳答案

首先,您不需要调用beginUpdatesendUpdates。其次,您无法以动画方式更改标签文本值。

您需要在单元格上添加标签并将 alpha 属性初始化为 0.0。当调用 accessoryButtonTappedForRowWithIndexPath 时,将动画 block 内的 alpha 属性设置为 1.0。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
AwesomeCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
cell.thankYouLabel.text = @"Thank you";
cell.thankYouLabel.alpha = 0.0;
return cell;
}

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
AwesomeCell *cell = [tableView cellForRowAtIndexPath:indexPath];
[UIView animateWithDuration:1.0 animations:^{
cell.thankYouLabel.alpha = 1.0;
}];
}

关于iOS:强制 tableView 单元格在点击时动画更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59129546/

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