【问题标题】:How to change top and bottom padding of text in MaterialDesign Overlined Textfield in iOS?如何在 iOS 的 MaterialDesign Overlined Textfield 中更改文本的顶部和底部填充?
【发布时间】:2019-05-29 21:30:48
【问题描述】:

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

我已经尝试应用形状和排版方案,但没有效果。

这是我的代码:

// Outlet
@IBOutlet weak var nameTextField: MDCTextField!

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

如何更改这些空格?

**** 更新 ****

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

【问题讨论】:

    标签: ios swift uitextfield material-design


    【解决方案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{
               ...
           }
    

    【讨论】:

    • 您好安德鲁,感谢您的回答。我可以实现文本位置,但现在我需要降低边框的高度以匹配文本大小。我更新了帖子以显示我的结果。你知道我可以做些什么来调整边框的高度吗?谢谢!
    • 当您说“边框高度”时,您是指厚度吗?如果是这样,请尝试 nameTextField.layer.borderWidth = 4 或其他值。如果我的回答对你有帮助,请反馈
    • 嗨 Andrew,我的意思是文本和边框之间的空间。你知道我该如何改变它吗?
    • textRect 为您工作了吗?如果是这样,请尝试更改topbottom edgeInsets
    猜你喜欢
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 2014-04-13
    • 2018-04-01
    • 2017-08-21
    • 2012-05-13
    相关资源
    最近更新 更多