在UIAlertController中删除textField周围的填充和边框

时间:2016-07-28 23:26:57

标签: ios swift swift2 uitextfield ios9

我试图在iOS 9.3中的Swift中的UIAlertController中实现一个文本字段,不知怎的,我在文本字段周围得到了填充和顶部边框。

请参阅下面的屏幕截图,我在文本字段周围添加了一个粗边框,以突出显示填充和顶部边框/线。

Screenshot

我的UIAlertController的代码:

func handleLoginForgotPassword() {
    // create alert controller
    let alertController = UIAlertController(title: "Password Reset", message: "\nEnter your email below and press Reset to reset your password.\n", preferredStyle: .Alert)

    // create text field for email
    alertController.addTextFieldWithConfigurationHandler { textField -> Void in
        let tf = textField
        tf.placeholder = "Email Address"
        tf.autocorrectionType = .No
        tf.autocapitalizationType = .None
        tf.backgroundColor = UIColor.whiteColor()    

        tf.layer.borderWidth = 4.0
        tf.heightAnchor.constraintEqualToConstant(50).active = true

        // pull email from emailTextField if it exists
        tf.text = self.emailTextField.text
    }

    // create "OK" alert action
    let actionReset = UIAlertAction(title: "Reset", style: UIAlertActionStyle.Default) {
        UIAlertAction in
        NSLog("YES Pressed")

        // do something

        return
    }
    // create "Cancel" alert action
    let actionCancel = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel) {
        UIAlertAction in
        NSLog("NO Pressed")    

        // do something

        return
    }

    // add the actions
    alertController.addAction(actionReset)
    alertController.addAction(actionCancel)

    // present the controller
    self.presentViewController(alertController, animated: true, completion: nil)
}

这种行为看起来很奇怪,在搜索类似问题时我无法找到它。

1 个答案:

答案 0 :(得分:0)

constraintEqualToConstant函数仅在iOS 9.0中可用,如果要支持早于9.0的iOS版本,则需要在代码中添加检查。这可能是导致问题的原因。

if #available(iOS 9.0, *) 
{
  tf.heightAnchor.constraintEqualToConstant(50).active = true
} else 
{
  // Fallback on earlier versions
}