将UIView移动到新的superview并再次从UITableViewCell移回

时间:2015-04-20 13:57:06

标签: ios objective-c uitableview swift uiview

我有一个自定义UITableViewCell,其中包含自定义UIView。当有人按下UITableViewCell时,UIView会作为子视图转移到新的UIWindow。然后当UIWindow被解雇时,我需要将UIView转移回选定的UITableViewCell。 我尝试过使用此代码:

(self.tableView.cellForRowAtIndexPath(self.tableView.indexPathForSelectedRow()!) as! ContentTableCell).replaceControls(self.expandedViewController.Controls)

其中replaceControls()是我的自定义表格单元格中的一个函数,它将给定视图添加为子视图并将其连接到相应的@IBOutletself.expandedViewController.Controls是自定义UIView

然而,这不起作用并产生错误CGAffineTransformInvert: singular matrix

1 个答案:

答案 0 :(得分:0)

如何使用hidden函数和CATrasition将单个视图中应该在两个视图中设置的所有对象放在一起。

  • 例如,您使用UIButton创建@IBAction fun flipViews()的实例。您应在hiddenviewDidLoad()中设置应在BackSideView中设置storyboard的对象。


    func flipViews() { UIView.beginAnimations("ViewSwitch", context: nil) UIView.setAnimationDuration(0.6) UIView.setAnimationCurve(.EaseInOut) if backSideObject1.hidden { frontSideObject1.hidden = true frontSideObject2.hidden = true frontSideObject3.hidden = true backSideObject1.hidden = false backSideObject2.hidden = false backSideObject3.hidden = false } else { frontSideObject1.hidden = false frontSideObject2.hidden = false frontSideObject3.hidden = false backSideObject1.hidden = true backSideObject2.hidden = true backSideObject3.hidden = true } UIView.setAnimationTransition(.FlipFromLeft, forView: view, cache: true) UIView.commitAnimations() }

我希望我的回答可以帮助你。