我当前的代码如下
class SetupScene: SKScene{
let myTextField: UITextField = UITextField(frame: CGRect(x: 208, y: 175, width: 230.00, height: 33.00));
override func didMove(to view: SKView) {
let background = SKSpriteNode(imageNamed: "pixelBackground")
background.position = CGPoint(x: self.size.width/2, y: self.size.height/2)
background.size = self.size
background.zPosition = -10
self.addChild(background)
self.view?.addSubview(myTextField)
myTextField.backgroundColor = UIColor.white
myTextField.text = "Enter your name:"
myTextField.borderStyle = UITextBorderStyle.line
myTextField.textAlignment = .center
myTextField.font = UIFont(name: "04b_25", size: 25)
}
}
使用上面的代码,myTextField 位于屏幕的左上角(我的屏幕处于横向)。我可以通过在 x 和 y 值中输入数字来手动将其移动到我想要的位置,但随后它会根据设备移动到不同的位置。当我尝试这样做时:
myTextField = UITextField(frame: CGRect(x: self.size.width/2, y: self.size.height/2, width: 230.00, height: 33.00))
屏幕上缺少 myTextField。我怎样才能像在 SpriteKit 中一样在所有设备上居中: (x: self.size.width/2, y: self.size.height/2)
*注意我想以编程方式执行此操作,而不是使用 Storyboard
最佳答案
不要使用框架。使用自动布局。
将 View (文本字段)上的 translatesAutoresizingMaskIntoConstraints
设置为 false,然后使用 X 轴 NSLayoutAnchor
和 Y 轴 NSLayoutAnchor
来制作你的 View 的中心等于它的 super View 的中心。
关于ios - 如何以编程方式在所有设备上居中 UITextview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47707383/