0

我有一个尽可能与 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
    )
}
4

1 回答 1

1

谢谢你的耐心。我假设只有单行很重要,这使得这更简单。

看起来您想要一个位于比该字段高 25 的容器中居中的文本字段。

我会继承MDCTextInputControllerFilled. 在子类中覆盖textInsets:。这是 Objective-C 的开始:

- (UIEdgeInsets)textInsets:(UIEdgeInsets)defaultInsets {
  UIEdgeInsets textInsets = [super textInsets:defaultInsets];
  textInsets.top = 12.5;
  textInsets.bottom = 12.5;

  return textInsets;
}

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

于 2018-05-24T19:26:36.153 回答