是否可以覆盖 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;
}

不要直接调整边框视图的边框。它从很多来源获取信息。对您来说重要的是插图。