如何在iOS的MaterialDesign Overlined Textfield中更改文本的顶部和底部填充?

时间:2019-05-29 11:57:44

标签: ios swift uitextfield material-design

我正在尝试在材料设计文本字段中更改文本的填充顶部和底部。

我已经尝试应用形状和字体设计方案,但是没有效果。

textfield with default padding

这是我的代码:

// Outlet
@IBOutlet weak var nameTextField: MDCTextField!

// Implementation
nameTextField.placeholder = "Nome"
nameTextField.delegate = self
let nameTextFieldController = MDCTextInputControllerOutlined(textInput: nameTextField)

如何更改这些空格?

****更新****

在通过覆盖MDCTextField更改textRect之后,我获得了以下结果。这是一个很大的进步。但是,如何更改边框的大小以匹配文本?

enter image description here

1 个答案:

答案 0 :(得分:1)

如果可以扩展MDCTextField类,请重写此方法:

        override func textRect(forBounds bounds: CGRect) -> CGRect { 
         return bounds.inset(by: UIEdgeInsets(top: 10, left: 0, bottom: 10, right: 0)) 
        } 

根据需要更改topbottom的值。

如果您无法访问/修改或扩展MDCTextField类,或者它已经具有其textRect(:forBounds)实现,则可以创建自己的UITextField类,例如:

       class MyTextField: UITextField{
           ...
       }
  

注意: :您甚至可以尝试继承MDCTextField类:

       class MyTextField: MDCTextField{
           ...
       }