繁体   English   中英

如何在UIAlertController中的UITextField中添加边距?

[英]How do I add margins to UITextField in a UIAlertController?

我目前正在用文本输入实现UIAlertController。 我成功地做到了没有任何问题。 但是,我想更改外观,尤其是在文本字段之间添加边距。

这就是现在的样子。 在此处输入图片说明

但是我不希望这些文本字段关闭。 问题是,如何为文本字段添加边距?

我的代码和尝试:

func createNameChangeSheet(){
        var tvName : UITextField?
        var tvSurname  : UITextField?

        let sheet = UIAlertController(title: "action", message: "alertView", preferredStyle: .Alert)
        let saveAction = UIAlertAction(title: "OK", style: .Default) { (action) in
            self.changeNameSurname((tvName?.text)!,surname: (tvSurname?.text)!)
        }
        let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: nil)
        sheet.addAction(saveAction)
        sheet.addAction(cancelAction)
        sheet.addTextFieldWithConfigurationHandler { (textField) in
            tvName = textField
            textField.text = self.name

            let margins = UIEdgeInsets(top: 0, left: 0, bottom: 30, right: 0)
            textField.layoutMargins = margins
        }

        sheet.addTextFieldWithConfigurationHandler { (textField) in
            tvSurname = textField
            textField.text = self.surname
        }
        self.presentViewController(sheet, animated: true) {}

    }

默认情况下, UIAlertController视图是不可定制的,如果您需要定制输出,那么我们需要使用customviews或任何第三方库

设置底边距的替代方法,在UITextField上创建UIView和addSubview,可以进行扩展以在整个应用程序中使用。

extension UITextField  {
 func textbottommboarder(frame1 : CGRect){
    let border = UIView()
    let width = CGFloat(2.0)
    border.backgroundColor = UIColor.lightGrayColor()
    border.frame = CGRect(x: 0, y: self.frame.size.height - width, width:  frame1.width, height: 2)
    self.layer.addSublayer(border.layer)
    self.layer.masksToBounds = true
 }
}

而不是在UITextfields上使用它

txt_username.textbottommboarder(txt_username.frame)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM