gpt4 book ai didi

iphone - 如何获得一个 UIView,它在边界更改时显示文本,使其表现得像 UILabel 一样?

转载 作者:行者123 更新时间:2023-12-03 19:32:14 27 4
gpt4 key购买 nike

我有一个 UIView,我需要在 drawRect 中绘制文本:

- (void)drawRect:(CGRect)rect {
...
[@"some text" drawAtPoint:somePoint withFont:someFont];
...
}

因为文本需要特殊格式,所以我不能只使用 UILabel。

在我旋转设备之前,它看起来很好。然后,我的自定义 UIView 的大小发生变化(在父 View 的 layoutSubviews 方法中),文本在一个方向上被拉伸(stretch),在另一个方向上被压扁。

当我用 UILabel 替换 View 时,文本看起来总是很棒,即使 View 的边界发生变化也是如此。

如何让我的 View 表现出与 UILabel 相同的行为?

我研究过一些事情,但尚未取得成功:

  • 将 View 层的needsDisplayOnBoundsChange 设置为YES。
  • 将 View 的 contentStretch 设置为 CGRectZero。
  • 在我的 View 的layoutSubviews中调用setNeedsDisplay。

也许我没有做对其中一件事情。还有其他人遇到过这种情况吗?

更新:按照 James Huddleston 的回答中的建议,我将 View 的 contentMode 属性设置为 UIViewContentModeRedraw,这让我成为了就在那里。现在,动画结束时的文本显示正确。但是,在动画开始时,文本会被压扁/拉伸(stretch)以适合最终尺寸,然后在动画过程中不再压扁/拉伸(stretch)。 UILabel 的情况并非如此。

最佳答案

尝试将 View 的 contentMode 属性设置为 UIViewContentModeRedraw

关于iphone - 如何获得一个 UIView,它在边界更改时显示文本,使其表现得像 UILabel 一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3949711/

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