我有一个自定义UITableViewCell
,其中包含自定义UIView
。当有人按下UITableViewCell
时,UIView
会作为子视图转移到新的UIWindow
。然后当UIWindow
被解雇时,我需要将UIView
转移回选定的UITableViewCell
。
我尝试过使用此代码:
(self.tableView.cellForRowAtIndexPath(self.tableView.indexPathForSelectedRow()!) as! ContentTableCell).replaceControls(self.expandedViewController.Controls)
其中replaceControls()
是我的自定义表格单元格中的一个函数,它将给定视图添加为子视图并将其连接到相应的@IBOutlet
。 self.expandedViewController.Controls
是自定义UIView
。
然而,这不起作用并产生错误CGAffineTransformInvert: singular matrix
。
答案 0 :(得分:0)
如何使用hidden
函数和CATrasition
将单个视图中应该在两个视图中设置的所有对象放在一起。
例如,您使用UIButton
创建@IBAction fun flipViews()
的实例。您应在hidden
或viewDidLoad()
中设置应在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()
}
我希望我的回答可以帮助你。