gpt4 book ai didi

ios - 在 UITextField 下放置一行的正确方法是什么

转载 作者:行者123 更新时间:2023-12-01 18:50:59 24 4
gpt4 key购买 nike

我想要一个无边框的 UITextField,但下面有一个 1 或 2 像素高的引导线,用于强调该字段。需要明确的是,我不希望 UITextField 内的文本带有下划线,而是该字段,无论是空的还是充满文本的。

在 Google Material Design 的这个例子中可以看到一个例子:

enter image description here

所以当然我可以坚持使用显示纯色的 UIImage 并将其适合该空间,但这似乎不太优雅,如果我担心,有没有更好的方法更“正确”和面向 future 关于我的代码将如何在几代 iOS 上运行以及谁知道哪些设备?

p.s.宁愿使用 Obj-C 从头开始​​做这件事,也不愿找到一个库。

最佳答案

实际上,我昨天才这样做...子类 UITextField ,这将起作用。

注意:虽然使用 textFieldDidBeginEditing: 和 textFieldDidEndEditing: 通过 NSNotificationCenter 或委托(delegate)方法来更改行高和颜色会更干净。

- (void)setup 
{
self.hairlineLayer = [CALayer layer];
self.hairlineLayer.backgroundColor = [UIColor materialTextDarkDividerColor].CGColor;
[self.layer addSublayer:self.hairlineLayer];
}

- (void)layoutSubviews
{
[super layoutSubviews];

CGFloat hairlineHeight = 0;
if (self.isFirstResponder) {
self.hairlineLayer.backgroundColor = [UIColor redColor].CGColor;
hairlineHeight = 1.4;
} else {
self.hairlineLayer.backgroundColor = [UIColor grayColor].CGColor;
hairlineHeight = 1/[UIScreen mainScreen].scale;
}

self.hairlineLayer.frame = CGRectMake(0, CGRectGetHeight(self.bounds) - hairlineHeight, CGRectGetWidth(self.bounds), hairlineHeight);
}

关于ios - 在 UITextField 下放置一行的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30944028/

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