ios - 如何以编程方式在所有设备上居中 UITextview?

标签 ios swift uitextfield uikit

我当前的代码如下

    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/

相关文章:

iphone - 将 UITextField 放置在 View 的中心

ios4 - UITextField:无法输入文本,但表情符号、复制/粘贴和退格很好

ios - 无法将 TextField 链接到 IBOutlet 变量

ios - 词法或预处理器问题 - 找不到 Cordova/CDVAppDelegate.h

ios - 在swift3中将变量放入字符串的语法

ios - CLLocationManager 授权消息未在 iOS iOS 8.0.1 中显示

swift - 如何去掉 UISearchBar 的边框?

ios - 如何在 iOS 中旋转设备后使 UIButton 居中

ios - 检查 CKRecords 数组是否包含特定记录

ios - ARKit 将节点放置在手指按下的位置