UIButton图像没有在UITableViewCell

时间:2015-10-04 11:11:36

标签: objective-c uitableview uibutton uiviewanimation nsautolayout

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

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

    [UIView beginAnimations:@"rotateDisclosure" context:NULL]; 
    [UIView setAnimationDuration:0.3];
    self.buttonArrow.transform = CGAffineTransformMakeRotation(M_PI_2); 
    [UIView commitAnimations];
    
  4. 我遇到的问题是动画无效。

    但是我从动画作品[tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath]调用它。

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

    1. [myCell setNeedsDisplay];
    2. [myCell setNeedsLayout];
      [myCell layoutIfNeeded];
    3. 如果你知道我做错了什么或者真正发生了什么以及如何完成上述工作,请说明。

      谢谢!

1 个答案:

答案 0 :(得分:0)

按照@pallzoltan的回答,我已经在一个单独的项目中尝试了它,并且发现我使用了错误的方法来检索有问题的单元格。我没有使用cellForRowAtIndexPath:,而是在那个indexPath上出列了单元格。

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