我的主要目标是创建一个包含很少自定义属性的展开/折叠表视图 . 我的逻辑和配置如下:
-
我在UITableViewCell上使用AutoLayout,在其中我添加了一个带有箭头图像的UIButton . 我在这里使用UIButton是因为图像是模板图像,我需要在不编写任何代码的情况下进行着色,而UIImageView在对图像进行着色时不起作用,除非通过代码完成 .
-
在tableView委托的
[tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath]
上,我编写了我的逻辑来打开(插入行)和/或折叠(删除行) . -
展开和折叠函数调用自定义UITableViewCell上的方法,并使用其中的按钮使用以下代码为箭头设置动画:
[UIView beginAnimations:@"rotateDisclosure" context:NULL];
[UIView setAnimationDuration:0.3];
self.buttonArrow.transform = CGAffineTransformMakeRotation(M_PI_2);
[UIView commitAnimations];
我遇到的问题是动画无效 .
但是我从 [tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath]
调用它来制作动画 .
我尝试在动画块内的按钮转换代码后添加以下内容但没有成功:
-
[myCell setNeedsDisplay];
-
[myCell setNeedsLayout]; [myCell layoutIfNeeded];
如果你知道我做错了什么或者真正发生了什么以及如何进行上述工作,请描述一下 .
谢谢!
1 回答
在@pallzoltan回答之后,我在一个单独的项目中尝试了它,并且发现我使用了错误的方法来检索有问题的单元格 . 我没有使用
cellForRowAtIndexPath:
,而是在那个indexPath上出列了单元格 .我在上面的问题中没有提供太多的信息,这就是为什么大多数人都没有指出这个问题 .