Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在显示tableview时,将对最终布局渲染设置动画_Ios_Cocoa Touch_Uitableview - Fatal编程技术网

Ios 在显示tableview时,将对最终布局渲染设置动画

Ios 在显示tableview时,将对最终布局渲染设置动画,ios,cocoa-touch,uitableview,Ios,Cocoa Touch,Uitableview,我正在自定义开发的UI控件中使用tableview。 我的tableView的默认帧是{0,0,0,0}..因此它不可见..我正在使用UIview的动画类方法和块(animateWithDuration:delay:..等)将此tableView动画化“进入屏幕”。动画块只包含帧。大小更改为{0,0,320250}。很明显,随着tableview框架的改变,一些单元格变得可见 此外,我还有一个自定义UIView,其中包含四个UILabel。标签正在捕捉到底部。 在cellForRowAtInde

我正在自定义开发的UI控件中使用tableview。
我的tableView的默认帧是{0,0,0,0}..因此它不可见..我正在使用UIview的动画类方法和块(animateWithDuration:delay:..等)将此tableView动画化“进入屏幕”。动画块只包含帧。大小更改为{0,0,320250}。很明显,随着tableview框架的改变,一些单元格变得可见

此外,我还有一个自定义UIView,其中包含四个UILabel。标签正在捕捉到底部。 在cellForRowAtIndexPath中:我将此自定义视图添加到单元格的内容视图中,并调整此自定义视图的大小以匹配内容视图框架

customView.frame = cell.frame;
[cell.contentView addSubview:customView];
我的问题是,由于单元格的高度不同,(在heightForRowAtIndexPath中解决)。。。 在主动画期间,特定单元格中的特定自定义视图正在更改其帧,从而有效地将标签垂直向下移动几个像素

我希望在我演示tableview时,它们已经就位~


如何做到这一点

您需要使用单元格的autoresizingMask属性,或者:


您可以创建自定义表格视图单元格,添加这些视图,并在单元格的LayoutSubview中处理这些视图。

您希望在这里获得什么样的视觉效果?听起来,如果滑动到位效果(其内容相对于移动视图保持在位),而不是增长到位(内容必须以零大小和拉伸开始),您可能需要更多。如果是这样的话,也许你的桌子应该保持它的大小不变,并从屏幕外的某个地方开始设置它的位置的动画。我希望标签不要被设置到它们的最终位置。我希望它们已经存在,当主表视图的动画发生时。因此,问题不在于布局规则,而是为什么标签会以动画方式移动到其最终位置,以及如何使单元格内的布局不动画。有两个选项可以解决这个问题-正如我所说->布局子视图可以通过给它们固定的大小和位置来帮助您避免设置动画。第二个选项是等待动画结束,然后添加动画。(只需在动画末尾加上一个标志,然后再次重新加载数据或其他内容)。视图将设置动画到其最终位置,因为如果在动画中更改表格的帧,则这些单元格内和表格视图内的所有布局子视图也将设置动画。为了避免您需要以某种方式覆盖LayoutSubview或在最后添加它们。我将相应的代码移动到LayoutSubview,这很有帮助,现在没有动画发生,谢谢。