Objective c UITableViewCell内未设置UIButton图像动画

Objective c UITableViewCell内未设置UIButton图像动画,objective-c,uitableview,uibutton,uiviewanimation,autolayout,Objective C,Uitableview,Uibutton,Uiviewanimation,Autolayout,我的主要目标是创建一个具有少量自定义属性的展开/折叠tableview。我的逻辑和配置如下: 我在UITableViewCell上使用AutoLayout,并在其中添加了一个带有箭头图像的UIButton。我在这里使用UIButton,因为图像是一个模板图像,我需要在不编写一行代码的情况下对其着色,并且UIImageView不能对图像着色,除非通过代码完成 在tableView委托的[tableView:(UITableView*)tableView DidSelectRowatineXpath

我的主要目标是创建一个具有少量自定义属性的展开/折叠tableview。我的逻辑和配置如下:

  • 我在UITableViewCell上使用AutoLayout,并在其中添加了一个带有箭头图像的UIButton。我在这里使用UIButton,因为图像是一个模板图像,我需要在不编写一行代码的情况下对其着色,并且UIImageView不能对图像着色,除非通过代码完成
  • 在tableView委托的
    [tableView:(UITableView*)tableView DidSelectRowatineXpath:(NSIndexPath*)indexPath]
    上,我编写了打开(插入行)和/或折叠(删除行)的逻辑
  • “展开”和“折叠”函数调用自定义UITableViewCell上的一个方法,并在其中使用按钮,使用以下代码设置箭头动画:

    [UIView beginAnimations:@"rotateDisclosure" context:NULL]; [UIView setAnimationDuration:0.3]; self.buttonArrow.transform = CGAffineTransformMakeRotation(M_PI_2); [UIView commitAnimations]; [UIView beginAnimations:@“RotateDiscovery”上下文:NULL]; [UIView设置动画持续时间:0.3]; self.buttonswearn.transform=CGAffineTransformMakeRotation(M_PI_2); [UIView委员会];
  • 我遇到的问题是动画不起作用

    然而,我从
    [tableView:(UITableView*)tableView cellforrowatinedexpath:(nsindepath*)indepath]调用它。
    动画工作

    我尝试在动画块内的按钮转换代码后添加以下内容,但未成功:

  • [myCell setNeedsDisplay]
  • [myCell setNeedsLayout]
    [myCell LayoutifNeed]
  • 如果你知道我做错了什么或真正发生了什么,以及我如何使上述工作,请描述


    谢谢

    在@pallzoltan的回答之后,我自己在一个单独的项目中尝试了它,发现我使用了一种错误的方法来检索相关的单元格。我没有使用
    cellforrowatinedexpath:
    ,而是在那个位置对单元格进行排队


    我在上面的问题中没有提供太多的信息,这就是为什么大多数人没有明确指出这个问题。

    您使用的是一种非常古老的动画方法。您应该改为在UIView上使用基于块的方法。是否可以通过设置断点来确保从didSelectRowAtIndexPath调用单元格中的代码?我已经尝试过动画代码,它很有效,这似乎不是问题。@Abizern我认为问题不在于我使用旧方法。我使用了基于块的方法,它给出了相同的结果。@pallzoltan是的,正在调用DidSelectRowatineXpath。