
我做了一些CABasicAnimation并将它附加到新的CAShapeLayer,然后我将这个图层添加到我的UItableVIEwCell中的超级图层:
self.layer.addSublayer(myLayer!)
除了myLayer(和他的动画)显示在我的UIVIEw之上之外,一切都很好.
我希望那个标签在UIVIEw下面.
我通过以相同的方式添加我的UIVIEw层来实现这一点:
self.layer.addSublayer(myVIEwLayer!)
在这种情况下,我的UIVIEw图层位于带有动画的CAShapeLayer的顶部.
但我有一个问题,我需要删除UIVIEw层 – myVIEwLayer,因为它在滚动时违反了UIVIEw的宽度.
当动画完成后,我需要删除图层,我可以毫无困难地删除CAShapeLayer – myLayer.
myLayer?.removeFromSuperlayer()
但是当我尝试对myVIEwLayer做同样的事情时,我的UIVIEw也被删除了.但我不希望这样,我需要在屏幕上和我的视图层次结构中使用我的UIVIEw.
我不明白为什么,如果看看self.layer.sublayers我看到这个(在添加图层之前):
[<CALayer: 0x7fd1f0d4fe40>,<CALayer: 0x7fd1f0ddc950>]
完成动画并移除myLayer后:
[<CALayer: 0x7fd1f0d4fe40>,<CALayer: 0x7fd1f0ddc950>,<CAGradIEntLayer: 0x7fd1f0de3660>]
正如你所看到的,CAGradIEntLayer是我的UIVIEw层.所以,在我手动将其添加到子图层数组之前,我还没有.我如何删除它,而不删除我的UIVIEw?
或者如何在UIVIEw下面添加myLayer?
编辑
简而言之,我在动画之前有这个图层层次结构:
[<CALayer: 0x7fd1f0d4fe40> <- (I think this is UItableVIEwCell layer),<CALayer: 0x7fd1f0ddc950> <- (then,this is UItableVIEwCell content vIEw layer)]
同时,我有这个视图层次结构:
UItableVIEwCell – >内容视图 – >的UIVIEw
我需要在UIVIEw下面添加带动画的新图层(我希望UIVIEw部分覆盖带动画的新图层).我怎么能这样做?
我在UItableVIEw图层层次结构中没有我的UIVIEw图层,所以我不能只使用addLayer添加带动画的图层:下面:依此类推.
解决方法 我发现了这个问题.我犯了一个简单的错误.我使用了self.layer.sublayers,但我必须使用self.contentVIEw.layer.sublayers这是我的错误.当我发现这一点时,我能够修复另一个问题并使用addLayer:下面:
因此,如果您没有看到必须位于对象子层中的图层,则意味着您在错误的位置查看它也可以找到它,就像在UItableVIEw中一样,您需要使用contentVIEw.
总结以上是内存溢出为你收集整理的ios – Swift:删除图层,而不删除UITableViewCell中的UIView全部内容,希望文章能够帮你解决ios – Swift:删除图层,而不删除UITableViewCell中的UIView所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)