0
編輯:添加快照。居中對齊UIView在另一個不工作 - 編程方式 -
我有一個UIView類,如下..
class CreateNewUserView: UIView{
private let subVu: UIView! = UIView()
func createNewUserVuLayout() -> UIView{
subVu.frame.size = CGSize(width:320, height:320)
// adding programmatically-created buttons, labels, textfields, etc..
return subVu
}
// will call the function below in a different ViewController class
func centerTheVu(superVuX:CGFloat){
subVu.center.x = superVuX
}
不同.swift文件
,我有以下UIViewController類..
import UIKit
class CreateNewUserVC: UIViewController{
private let instanceOfCreateNewUserView = CreateNewUserView()
override func loadView(){
super.loadView()
view.addSubview(instanceOfCreateNewUserView.createNewUserVuLayout())
// Calling the function from the UIView class now. Working perfectly!
// the view is centered horizontally as expected.
instanceOfCreateNewUserView.centerTheVu(superVuX: view.center.x)
// However, if I delete the above line, the line below does not accomplish
// the same task when I try to do the same vertically!
instanceOfCreateNewUserView.center.y = view.center.y
}
}
是否有一個原因,它不是在第二種情況下工作?
instanceOfCreateNewUserView.center.y = view.center.y
還,以下沒有工作..
instanceOfCreateNewUserView.center.y = self.view.center.y
的應用程序構建並運行,但是,該視圖水平對齊,而不是垂直方向。
我是新來的swift,並試圖找出如何以編程方式構建/對齊控制元素。
但是,如果是這樣的話,爲什麼它運行時,我運行的功能?然而,它不能使用.center屬性的訪問..?如果這個觀點不涉及,爲什麼它受到一種方法的影響,而不是另一種?你能否詳細說明..?謝謝。 –
該功能改變顯示的「subVu」的框架。另一行更改不在屏幕上的'instanceOfCreateNewUserView'的框架 –
謝謝。這糾正了我的方法。我應該改變使用調用函數返回一個UIView,而不是一個類的實例。欣賞提示。 –