viewDidLoad UIView 与 CGPoint()
viewDidLoad UIView with CGPoint()
我想创建我自己的自定义 segue 动画,我想在其中呈现 VC 从 button.origin 大小为 (1,1) 并转移到 CGPoint(0,0)并拉伸至全屏大小。
VC1
转至 VC2
并通过 VC1
的 button.frame 通过
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let PVC = segue.destinationViewController as VC2
PVC.CGstart = button.frame.origin}
在VC2
我有
@IBOutlet var VC4: UIView!
var CGstart = CGPoint()
override func viewDidLoad() {
super.viewDidLoad()
VC4.frame.origin = CGstart
}
@IBAction func DragTest(sender: UIButton) {
VC4.frame.origin = CGstart
println(CGstart)
}
viewDidLoad
不调整 VC4
的 frame.origin...而我的 @IBAction func DragTest
会调整
这是为什么?我尝试了很多不同的变体。
尝试将原点设置移动到 viewWillAppear
。
override func viewWillAppear() {
super.viewWillAppear()
VC4.frame.origin = CGstart
}
这解决了问题。
override func viewDidLoad() {
super.viewDidLoad()
self.view.layoutIfNeeded()
VC4.frame.origin = CGstart
}
不需要 viewDidAppear
或 layoutSubviews
。
我想创建我自己的自定义 segue 动画,我想在其中呈现 VC 从 button.origin 大小为 (1,1) 并转移到 CGPoint(0,0)并拉伸至全屏大小。
VC1
转至 VC2
并通过 VC1
的 button.frame 通过
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let PVC = segue.destinationViewController as VC2
PVC.CGstart = button.frame.origin}
在VC2
我有
@IBOutlet var VC4: UIView!
var CGstart = CGPoint()
override func viewDidLoad() {
super.viewDidLoad()
VC4.frame.origin = CGstart
}
@IBAction func DragTest(sender: UIButton) {
VC4.frame.origin = CGstart
println(CGstart)
}
viewDidLoad
不调整 VC4
的 frame.origin...而我的 @IBAction func DragTest
会调整
这是为什么?我尝试了很多不同的变体。
尝试将原点设置移动到 viewWillAppear
。
override func viewWillAppear() {
super.viewWillAppear()
VC4.frame.origin = CGstart
}
这解决了问题。
override func viewDidLoad() {
super.viewDidLoad()
self.view.layoutIfNeeded()
VC4.frame.origin = CGstart
}
不需要 viewDidAppear
或 layoutSubviews
。