首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >添加UIView以覆盖整个UITableViewCell以及iOS 10中的附件视图

添加UIView以覆盖整个UITableViewCell以及iOS 10中的附件视图
EN

Stack Overflow用户
提问于 2017-05-29 14:45:51
回答 1查看 219关注 0票数 0

我有一个相当容易定制的单元格标准附件视图。

在某种程度上,我需要执行一个动画覆盖整个细胞的彩色视图,其中有一个图像在其中心。当我这样做的时候,我在iPhone 5上遇到了iOS 10.2上的奇怪问题。

我就是这样做的:

  1. 使用nib文件创建UITableViewCell的子类。
  2. 在init方法中将UIView coverView直接作为子视图(self.addSubview(self.coverView))添加到自定义单元格中(因为我也需要覆盖附件视图,所以不能将其添加到contentView)。coverView是以编程方式创建的,没有布局约束。通过编程方式将UIImageView添加到其中,并将布局约束和translatesAutoresizingMaskIntoConstraints设置为false
  3. 添加一种方法: func animateCState() { self.coverView.frame = self.bounds Sel.coverView.framework.源.y= -self.frame.size.height self.bringSubview(toFront: self.coverView) UIView.animate(withDuration: 0.3,动画:{Sel.coverView.framework.源.y=0 })} }
  4. 当用户点击单元格时调用animateCState

我所期望的:绿色视图,从顶部的中央幻灯片中显示图像。

我看到的是:从上面看幻灯片很明显是透明的,几乎在动画结束时闪烁到绿色。我可以看到imageView在适当的位置滑动。

问:如何将覆盖整个UITableViewCell的视图(附带视图)添加到一个单元格中,并将其动画化?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-31 08:07:58

好的。看来我已经弄明白了。

显然,UITableView或UITableViewCell对直接添加到单元格的所有视图都做了一些事情(将.clear颜色设置为背景),不管是在prepareForReuse之后还是在其他时间点。在做动画之前,我必须在我的animateCState函数中设置我想要的颜色。

所以我的方法是这样的:

代码语言:javascript
运行
复制
func animateCState() {

    self.coverView.frame = self.bounds
    self.coverView.frame.origin.y = -self.frame.size.height
    self.bringSubview(toFront: self.coverView)
    self.coverView.backgroundCOlor = .green
    UIView.animate(withDuration: 0.3, animations: {
        self.coverView.frame.origin.y = 0
    })  
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44245225

复制
相关文章

相似问题

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