gpt4 book ai didi

swift - 可以像这样制作 UITextField 吗?

转载 作者:搜寻专家 更新时间:2023-11-01 06:51:05 27 4
gpt4 key购买 nike

情况:我想在 xcode 项目中为我的文本字段使用自定义 UITextField 类。我希望 textField 看起来像这样:

My text field

我在使边缘变圆和更改占位符的颜色方面没有问题,但我不知道如何保持底部边缘平坦并仅在底部绘制黑色边框。

这是我的代码:

import UIKit

class GrayTextField: UITextField {
override func awakeFromNib() {
super.awakeFromNib()
backgroundColor = .grayf1f1f1
layer.borderWidth = 1
layer.borderColor = UIColor.black.cgColor
layer.cornerRadius = 10
clipsToBounds = true
}

override var placeholder: String? {
didSet {
let attributes = [ NSAttributedString.Key.foregroundColor: UIColor.black, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16, weight: .thin)]
attributedPlaceholder = NSAttributedString(string: placeholder ?? "", attributes: attributes)
}
}
}

我目前的结果:

Current result

最佳答案

在您的回答中,左下角和右下角仍然存在一些问题。

要获得准确的结果,请将 UITextField Border Style 更改为 No Border

enter image description here

文本填充:

class GrayTextField: UITextField {

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

..... Your Exact Code .....

override open func textRect(forBounds bounds: CGRect) -> CGRect {
return bounds.inset(by: padding)
}

override open func placeholderRect(forBounds bounds: CGRect) -> CGRect {
return bounds.inset(by: padding)
}

override open func editingRect(forBounds bounds: CGRect) -> CGRect {
return bounds.inset(by: padding)
}
}

输出

enter image description here

关于swift - 可以像这样制作 UITextField 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56976419/

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