热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS11UITableView删除行动画bug

如何解决《iOS11UITableView删除行动画bug》经验,为你挑选了3个好方法。

tableview动画bug的视频

我有一个表格视图,可以扩展/折叠其单元格.

从iOS 11开始,tableView在插入和删除行时开始出现奇怪的行为.在动画块发生之前,contentSize已经更改,因此,在视频中,您可以看到在折叠单元格上发生错误回滚.动画看起来不对劲.

这段代码在iOS 10上完美运行.有人知道Apple方面有什么变化吗?这是一个已知的问题?

public func insertingRowsForAccordion(_ indexArray: [IndexPath], selectedRowIndex: Int) {
    beginUpdates()
    insertRows(at: indexArray, with: UITableViewRowAnimation.fade)
    endUpdates()

 // Scroll to selection after expanding children
    scrollToRow(at: IndexPath(row: selectedRowIndex, section: 0), at: UITableViewScrollPosition.top, animated: true)
}

public func removeRowsForAccordion(_ indexArray: [IndexPath]) {
    beginUpdates()
    deleteRows(at: indexArray, with: UITableViewRowAnimation.fade)
    endUpdates()
}

小智.. 31

iOS 11一直存在无数问题UITableView.UITableView在我的整个应用程序中执行每个操作并执行以下操作修复了我的所有问题.

设置estimatedRowHeight,estimatedSectionHeaderHeight和,estimatedSectionFooterHeight为0.

来源:iOS 11浮动TableView标题



1> 小智..:

iOS 11一直存在无数问题UITableView.UITableView在我的整个应用程序中执行每个操作并执行以下操作修复了我的所有问题.

设置estimatedRowHeight,estimatedSectionHeaderHeight和,estimatedSectionFooterHeight为0.

来源:iOS 11浮动TableView标题


没有解决方案在这里没有帮助,它可怕的破碎,看起来很糟糕.我正在使用自动布局和大小类的大小调整单元格.问题只发生在tableview的底部附近,可能是表的20%.

2> Chuck Boris..:

我在iOS 11上删除表格行动画时遇到了类似的问题,有时会奇怪地滚动表格单元格(iOS 10正常工作)。帮助实现该委托方法返回行高的方法是:

- (CGFloat) tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath

之后,iOS 10和11都可以正常工作。



3> Edward Helly..:

在iOS 11.2中,使用标准的行操作删除一行后,动画效果很差。我只能通过在CATransaction中包装行删除和行操作消除来改善这种情况。

我首先取消了行操作,然后等待该动画完成,然后再从表格视图中删除该行。

它至少不会再绕过表格视图内容偏移,而是一个冗长的两步动画。我仍在寻找更好的解决方案。

        CATransaction.begin()
        CATransaction.setCompletionBlock({
            self.tableView.beginUpdates()
            self.myViewModel?.items?.remove(at: indexPath.row)
            self.tableView.deleteRows(at: [indexPath], with: UITableViewRowAnimation.top)
            self.tableView.endUpdates()
        })
        self.tableView.setEditing(false, animated: true)
        CATransaction.commit()


推荐阅读
author-avatar
港1009
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有