是否可以覆盖 MDCTextInputControllerFilled 的 borderView 框架?
Is that possible to override MDCTextInputControllerFilled's borderView's frame?
我的设计尽可能类似于 MDCTextField(带有控制器 MDCTextInputControllerFilled)。我检查了组件,我认为我应该覆盖控制器,但为什么呢?
如果我走错了路,你能帮我解决这个问题吗?
我的测试代码如下
tfc1?.placeholderText = "Test"
tfc1?.borderFillColor = UIColor.brown.withAlphaComponent(1)
if let f = tfc1?.textInput?.borderView?.frame {
tfc1?.textInput?.borderView?.frame = CGRect(
x: f.origin.x,
y: f.origin.y + 25,
width: f.width,
height: f.height + 25
)
}
感谢您的耐心等待。我假设只有一行很重要,这使得这更简单。
您似乎想要一个位于比该字段高 25 的容器中居中的文本字段。
我会继承 MDCTextInputControllerFilled
。在子类中覆盖 textInsets:
。这是 Objective-C 的开始:
- (UIEdgeInsets)textInsets:(UIEdgeInsets)defaultInsets {
UIEdgeInsets textInsets = [super textInsets:defaultInsets];
textInsets.top = 12.5;
textInsets.bottom = 12.5;
return textInsets;
}
不要直接调整边框视图的边框。它从很多来源获取信息。对您来说重要的是插图。
我的设计尽可能类似于 MDCTextField(带有控制器 MDCTextInputControllerFilled)。我检查了组件,我认为我应该覆盖控制器,但为什么呢?
如果我走错了路,你能帮我解决这个问题吗?
我的测试代码如下
tfc1?.placeholderText = "Test"
tfc1?.borderFillColor = UIColor.brown.withAlphaComponent(1)
if let f = tfc1?.textInput?.borderView?.frame {
tfc1?.textInput?.borderView?.frame = CGRect(
x: f.origin.x,
y: f.origin.y + 25,
width: f.width,
height: f.height + 25
)
}
感谢您的耐心等待。我假设只有一行很重要,这使得这更简单。
您似乎想要一个位于比该字段高 25 的容器中居中的文本字段。
我会继承 MDCTextInputControllerFilled
。在子类中覆盖 textInsets:
。这是 Objective-C 的开始:
- (UIEdgeInsets)textInsets:(UIEdgeInsets)defaultInsets {
UIEdgeInsets textInsets = [super textInsets:defaultInsets];
textInsets.top = 12.5;
textInsets.bottom = 12.5;
return textInsets;
}
不要直接调整边框视图的边框。它从很多来源获取信息。对您来说重要的是插图。