Ios 在另一个视图中居中对齐UIView不起作用-编程方式-
编辑:添加了一个快照 我有一个UIView类,如下所示Ios 在另一个视图中居中对齐UIView不起作用-编程方式-,ios,layout,uiview,swift3,programmatically-created,Ios,Layout,Uiview,Swift3,Programmatically Created,编辑:添加了一个快照 我有一个UIView类,如下所示 class CreateNewUserView: UIView{ private let subVu: UIView! = UIView() func createNewUserVuLayout() -> UIView{ subVu.frame.size = CGSize(width:320, height:320) // adding programmatically-created but
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新手,正在尝试找出如何以编程方式构建/对齐控件元素。您的视图层次结构如下所示: CreateNewUserVC的视图
-----苏布武 根本不涉及CreateNewUserView,您从未将其添加到视图控制器的视图中
因此,移动其框架不会改变屏幕上任何视图的布局。您的视图层次结构如下所示: CreateNewUserVC的视图
-----苏布武 根本不涉及CreateNewUserView,您从未将其添加到视图控制器的视图中
因此,移动其框架不会改变屏幕上任何视图的布局。但如果是这样,为什么在我运行该功能时它会工作??但是,使用对.center属性的访问权限时,它不起作用。。?如果视图不涉及,为什么一种方法会影响视图,而另一种方法不会影响视图。。?你能详细说明一下吗。。?谢谢。该功能更改显示的
subVu
的帧。另一行更改了instanceOfCreateNewUserView
的框架,该框架不在屏幕上。谢谢。这纠正了我的做法。我应该通过调用返回UIView而不是类实例的函数来改变。谢谢你的提示。但是如果是这样的话,为什么在我运行函数的时候它会工作??但是,使用对.center属性的访问权限时,它不起作用。。?如果视图不涉及,为什么一种方法会影响视图,而另一种方法不会影响视图。。?你能详细说明一下吗。。?谢谢。该功能更改显示的subVu
的帧。另一行更改了instanceOfCreateNewUserView
的框架,该框架不在屏幕上。谢谢。这纠正了我的做法。我应该通过调用返回UIView而不是类实例的函数来改变。感谢你的暗示。