gpt4 book ai didi

ios - 通过 Interface Builder 创建填充

转载 作者:行者123 更新时间:2023-11-30 13:36:45 26 4
gpt4 key购买 nike

我使用这篇文章作为引用:Create space at the beginning of a UITextField 。在这篇文章中,有一个非常有用的类在文本字段中添加填充。但是,我知道如何使用此类的唯一方法是以编程方式创建一个文本字段。但相反,我想将此类与 IBOutlet 一起使用。这是 TextField 类:

class TextField: UITextField {

let padding = UIEdgeInsets(top: 0, left: 35, bottom: 0, right: 5);

override func textRectForBounds(bounds: CGRect) -> CGRect {
return self.newBounds(bounds)
}

override func placeholderRectForBounds(bounds: CGRect) -> CGRect {
return self.newBounds(bounds)
}

override func editingRectForBounds(bounds: CGRect) -> CGRect {
return self.newBounds(bounds)
}

private func newBounds(bounds: CGRect) -> CGRect {
print("paisjdpfij")
var newBounds = bounds
newBounds.origin.x += padding.left
newBounds.origin.y += padding.top
newBounds.size.height -= padding.top + padding.bottom
newBounds.size.width -= padding.left + padding.right
return newBounds
}
}

这是我尝试将它与我的 IBOutlet 一起使用:

@IBOutlet weak var firstNameTextField: TextField!

override func viewDidLoad() {
super.viewDidLoad()

firstNameTextField = TextField()

}

但是,文本字段中仍然没有填充。有人能解决这个问题吗?

现在,我使用了这段代码:

let paddingView = UIView(frame: CGRect(x: 0.0, y: 10.0, width: 5.0, height: 20.0))

firstNameTextField.leftView = paddingView
firstNameTextField.leftViewMode = .Always

在文本字段的左侧添加填充。不过,我还想要底部有一些填充物。而且似乎没有一个简单的解决方案来添加底部填充。

最佳答案

您可以像以前一样创建类别/扩展名或创建自定义文本字段。并实现这两个方法并通过更改不同的边界来使用它。

import UIKit

class CustomTextField: UITextField
{

required init?(coder aDecoder: NSCoder){
super.init(coder: aDecoder)
}

override func textRectForBounds(bounds: CGRect) -> CGRect
{
return CGRectMake(bounds.origin.x + 10, bounds.origin.y + 8, bounds.size.width - 20, bounds.size.height - 16);
}

override func editingRectForBounds(bounds: CGRect) -> CGRect
{
return self.textRectForBounds(bounds);
}
}

有关更多详细信息,您可以引用 Nate Flink 的回答:Set padding for UITextField with UITextBorderStyleNone

关于ios - 通过 Interface Builder 创建填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35986545/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com