作者:沈达浪认_972 | 来源:互联网 | 2023-01-11 11:01
如何解决《如何在以前在iOS10上运行的iOS11上的单元格解雇期间重新获得清晰的颜色UITableViewCell蒙版效果?》经验,应该怎么弄,您有好建议吗?
前言
我UITableViewCell
在iOS 10上有一个工作的自定义解雇动画.它的实现方式如下:
用户按下提交按钮
自定义视图在UITableViewCell
子视图的索引零处创建,定位和插入(在单元格下方contentView
)
的contentView
是动画帧失而定制视图的alpha是动画〜1.0
当contentView
完全超出帧时,将调用本机UITableView
方法deleteRows(at: [indexPath], with: .top)
.UITableViewCell
折叠和自定义视图在折叠时隐藏在前一个视图后面UITableViewCell
.
单元格(以及所有子视图,包括我的自定义视图)将被删除.
下面是它工作的慢动画:
注意:tableView
背景颜色清晰,允许自定义视图(蓝色)显示在其后面.每个单元具有containerView
包含单元的所有内容的a.在containerView
和contentView
都有明确的背景颜色.一切都很好,花花公子.
问题
将我的应用迁移到iOS 11,此动画无法正常运行.下面是一个慢动画,它不再工作了.
如您所见,自定义视图在单元格解除时叠加在上一个单元格的顶部,而不会更改我的代码.
调查迄今为止
到目前为止,我已经确定a的解剖结构UITableView
已经改变了:
UITableView
UITableViewWrapperView
cell
custom view
contentView
cell separator view
cell
cell
cell
UIView
UIImageView (scroll view indicator bottom)
UIImageView (scroll view indicator right)
对此:( UITableViewWrapperView
已被删除)
UITableView
cell
custom view
contentView
cell separator view
cell
cell
cell
UIView
UIImageView (scroll view indicator bottom)
UIImageView (scroll view indicator right)
我注意到的一点UITableWrapperView
是,它的图层isOpaque
属性为true,masksToBounds
属性为false,而UITableView
所有UITableViewCell
s都相反.由于此视图在iOS 11中被删除,这可能会导致我出现错误效果的原因.我真的不知道.
编辑:我发现的另一件事是,UITableWrapperView
在工作示例中UIView
,在它的子视图(所有UITableViewCell
s)的零索引处插入一个谜,其中属性isOpaque
设置为true并且它具有compositingFilter
.随后在动画完成后删除此视图.由于UITableWrapperView
在iOS 11中被删除,因此该视图也会丢失.
题
首先,是否有人知道为什么这种行为发生了变化?如果没有,是否有另一种方法可以更好地实现iOS 10中的效果?我想要清楚UITableViewCell
但是有一个自定义视图,在解雇时显示在每个单元格后面,UITableViewCell
当被解雇时被其他清除屏蔽,如上面第一个gif示例所示.