在同一个 UITextField 中居中占位符,但大小不同

发布于 2024-10-04 06:51:13 字数 275 浏览 0 评论 0原文

我试图将相同的占位符文本集中在同一 UITextField 的两种不同尺寸中。

所涉及的 UITextField 纵向宽度为 243,横向宽度为 360。

在纵向模式下,占位符位于中间就好了。当我旋转到横向并且 UITextField 重新绘制得更大时,它不再居中。就像向左 25%(我猜是在纵向长度的中间)

有没有办法在每次 UITextField 的长度发生变化时重新居中占位符?

I am trying to have the same placeholder text centered in two different sizes of the same UITextField.

The UITextField in question is 243 wide in Portrait and 360 in Landscape.

When in Portrait the placeholder centers in the middle just fine. When I rotate to Landscape and the UITextField gets redrawn bigger, it is no longer centered. It's like 25% to the left (I am guessing in the middle of the Portrait length)

Is there any way to re-center the placeholder every time the length of a UITextField changes ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你丑哭了我 2024-10-11 06:51:13

有趣的。在我发布这个问题 5 分钟后,我想到了一个想法。

在纵向模式下重绘文本字段后,我执行以下操作:

Textfield.textAlignment = UITextAlignmentLeft;
Textfield.textAlignment = UITextAlignmentCenter;

在横向模式下重绘文本字段后,我执行以下操作:

Textfield.textAlignment = UITextAlignmentRight;
Textfield.textAlignment = UITextAlignmentCenter;

现在占位符在两种模式下都完美居中。哈克,但似乎有效。我想,直到有人用“正确的方式”回复为止。

interesting. 5 minutes after I posted this question an idea came to mind.

After the textfield gets redrawn in Portrait I do this:

Textfield.textAlignment = UITextAlignmentLeft;
Textfield.textAlignment = UITextAlignmentCenter;

After the textfield gets redrawn in Landscape I do this:

Textfield.textAlignment = UITextAlignmentRight;
Textfield.textAlignment = UITextAlignmentCenter;

Now the placeholder is perfectly centered in both modes. Hacky, but seems to work. Until someone replies with the "proper way", I guess.

霞映澄塘 2024-10-11 06:51:13

您可能可以通过以下方式实现相同的结果:

[textfield setNeedsLayout];

或者,可能

[textfield setNeedsDisplay];

You can probably accomplish the same result with:

[textfield setNeedsLayout];

or, possibly

[textfield setNeedsDisplay];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文