首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UITableViewCell + Autolayout + RTL

UITableViewCell + Autolayout + RTL
EN

Stack Overflow用户
提问于 2014-08-12 06:47:51
回答 2查看 1K关注 0票数 2

我正在将我的应用程序本地化为希伯来语,这是一种RTL语言。

每个单元格的水平约束设置为前导/尾随,在RTL语言中会自动反转。

最终结果与预期完全相同,但是当滚动表视图时,UITableViewCell子视图是从LTR动画到RTL,这是非常奇怪的。

是否有防止视图动画的工作?

示例:

在所有WWDC的视频里也没有这个词..。

EN

回答 2

Stack Overflow用户

发布于 2014-08-20 09:41:40

您只需在- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)单元格forRowAtIndexPath:(NSIndexPath *)indexPath中动画该约束,我在代码中使用了一个示例,但没有动画约束,而是动画单元格的内容视图层转换

代码语言:javascript
复制
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    UIView *contentView = cell.contentView;
    contentView.layer.opacity = 0.0;
    contentView.layer.transform = CATransform3DMakeScale(0.2, 2, 0.3);
    [UIView animateWithDuration:0.5
                 animations:^{
                     contentView.layer.opacity = 1;
                     contentView.layer.transform = CATransform3DIdentity;
                 }];

}

票数 2
EN

Stack Overflow用户

发布于 2014-08-21 08:03:11

好的,基本上UIView是以*.XIB文件上显示的原始布局启动的,然后将布局更改为设备的本地化。

第一次显示我的UITableViewCell时,没有动画,也没有正确显示,我假设我的UITableView正在重用它的单元格,因为这就是我定义它的方式,但实际上,由于我错误地引起的另一个问题,在滚动过程中更改了我的tableView的内容大小,旧的单元格没有被重用,是什么原因导致了20个“活动”单元格在同一时间被表视图细分,所以每一行只是启动了一个新的UITableViewCell,并且因为在同一时间有一个方法执行

代码语言:javascript
复制
[UIView animateWithDuration:.2 animations:^{
    ...

    [self.view layoutIfNeeded];

    ...
}];

单元格的布局也从LTR动画到RTL布局。

无论如何,修复这种行为的实现解决了单元格的重用问题,也解决了全局视图布局动画引起的奇怪动画问题。

希望它能帮助其他遇到类似事情的人。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25257848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档