使 View 在 UITableViewCell 之外可见

Make View visible outside TableViewCell

是否可以在 tableViewCell 中放置一个 view 并使其在 tableView-frame 之外可见?

我需要这个来制作动画。我尝试设置 clipsToBounde = false 但这并没有解决问题。 view 仍然在 tableViewFrame 之外被剪切。

我的view里面tableViewCell:

 func setupLoadingAnimation(){

    successAnimation.translatesAutoresizingMaskIntoConstraints = false
    successAnimation.clipsToBounds = false
    self.contentView.addSubview(successAnimation)

    successAnimation.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: -60).isActive = true
    successAnimation.centerYAnchor.constraint(equalTo: contentView.centerYAnchor).isActive = true
    successAnimation.widthAnchor.constraint(equalToConstant: 160).isActive = true
    successAnimation.heightAnchor.constraint(equalToConstant: 160).isActive = true

    successAnimation.isHidden = true
    successAnimation.loopMode = .playOnce
 }

您需要确保层次结构中的所有视图都将其裁剪设置为 false。从 successAnimation 的父视图开始,向上遍历层次结构,这将包括单元格的 contentView 和 table 视图本身。

您需要注意的另一件事是,稍后添加到层次结构中的视图如果处于同一级别,将显示在其他视图之上,并且由于 table 视图管理其单元格很难知道哪些单元格将与您的动画重叠。

要解决此问题,您可以在 table 视图上调用 bringSubviewToFront() 并传递单元格,我会在执行成功动画之前立即执行此操作。

另一种方法是将 table 和成功视图放在共享的父视图中,这样您只需确保成功视图在 table 视图上方一次,当您添加视图。