如何在UINavigationBar sizeToFit中设置UITextField?

Mat*_*ift 1 uinavigationbar uitextfield uinavigationcontroller ios swift

我一直无法找到解决这个问题的方法.我无法给予的UITextField,textField中,sizeToFit当放置在UINavigationBar的财产.

我试过了: textField.sizeToFit()

当然,Interface Builder在放入UINavigationBar时不会给出任何选项.任何解决方案都很棒,谢谢!

Ras*_*n L 5

创建一个插座textField,然后只需调用此功能viewDidLoad(您也可以直接粘贴下面的代码viewDidLoad):

func setWidth() {
    var frame: CGRect = self.textField.frame
    frame.size.width = self.view.frame.width
    self.textField.frame = frame
}
Run Code Online (Sandbox Code Playgroud)

结果:

iPhone 6S Plus: 在此输入图像描述

iPhone 6: 在此输入图像描述

iphone 5: 在此输入图像描述

更新
要更改旋转大小,请添加以下代码行:

viewDidLoad添加此观察者:

NSNotificationCenter.defaultCenter().addObserver(self, selector: "rotated", name: UIDeviceOrientationDidChangeNotification, object: nil)
Run Code Online (Sandbox Code Playgroud)

添加此功能将检测方向,然后调整大小textField:

func rotated(){
    if(UIDeviceOrientationIsLandscape(UIDevice.currentDevice().orientation)){
        print("landscape")
        setWidth()
    }

    if(UIDeviceOrientationIsPortrait(UIDevice.currentDevice().orientation)){
        print("Portrait")
        setWidth()
    }
}
Run Code Online (Sandbox Code Playgroud)