【发布时间】:2013-05-15 15:04:51
【问题描述】:
在我的应用程序中,我在 Scene 中有一个 UITableView,它动态改变宽度。当宽度发生变化时,我会为场景的扩展设置动画 - 包括 UITableView。
UITableView 包含带有自定义视图的节标题,其中包含锚定在视图右侧的 UILabel。
当我的场景宽度发生变化时,我会像这样为调整表格大小设置动画:
[UIView animateWithDuration:0.22
delay:0.02
options:UIViewAnimationOptionCurveLinear
animations:^
{
//Change width to 320 from 220
[menuTable setFrame:CGRectMake(menuTable.frame.origin.x, menuTable.frame.origin.y, 320, menuTable.frame.size.height)];
}
completion:^(BOOL finished)
{
}];
这可以平滑地为表格的大小调整设置动画,但节标题内的标签会弹出到最终目的地 - 它没有动画。
我试过打电话给reloadData - 效果一样,没有动画。我试过打电话给beginUpdates和endUpdates,但是没有效果。
我还应该尝试什么?
【问题讨论】:
-
你在使用自动布局吗?
-
UILabel 不会为文本更改设置动画。如果您为标签设置背景颜色,您应该会看到标签框架正确动画,而文本等待然后跳转到位。您需要一个 UILabel 的子类来完全控制文本动画的到位方式。
-
@rdelmar - 我正在使用自动布局。
-
@RyanPoolos - 如果我按照你所说的那样在标签上设置背景颜色,我可以看到它肯定会弹出到位 - 标签本身没有以任何方式设置动画。
标签: iphone ios objective-c uitableview