gpt4 book ai didi

ios - UITextField 文本在动态类型调整大小后垂直移动

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:22:20 25 4
gpt4 key购买 nike

我在我的应用程序中使用动态类型。如果我在最小文本大小模式下使用 Dynamic Type 启动它,然后单击 UITextField 进行编辑,一切都很好。它打开键盘,文本保持静止。

然后当我外出时,将文本大小更改为最大文本大小模式,然后切换回来,它将调整文本字段中文本的大小,就像它应该的那样。

但是,当我点击 UITextField 进行编辑时,其中的文本每次都会垂直移动。

下面是我刚从更改大小设置回来时的 GIF(注意“示例文本”如何垂直移动):

Sample Text shifts vertically in UITextField

这是我的示例应用程序中的相关代码:

- (void)viewDidLoad
{
[super viewDidLoad];

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(preferredContentSizeChanged:)
name:UIContentSizeCategoryDidChangeNotification
object:nil];
}

- (void)preferredContentSizeChanged:(NSNotification *)notification
{
self.testField.font = [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline];
[self.view setNeedsLayout];
}

如果我关闭应用程序并以大文本大小重新打开它,没问题,直到我将其更改为小文本大小,然后再次开始。如果您只是在应用的整个持续时间内保持相同的文本大小,则不会发生这种转变。

更改文本大小后如何防止它像这样移动有什么想法吗?

最佳答案

UITextField View 的高度不足以包含最大字体大小的字符串。

您有几个选择:

  1. 创建一个更高的UITextField
  2. 通过执行 -sizeToFit 在运行时调整 UITextField 的大小

附言。不错的动画!

关于ios - UITextField 文本在动态类型调整大小后垂直移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24602549/

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