使 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 视图上方一次,当您添加视图。
是否可以在 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 视图上方一次,当您添加视图。