gpt4 book ai didi

ios - 如何绘制围绕右上角和右下角的对象流动的文本?

转载 作者:可可西里 更新时间:2023-11-01 04:42:10 26 4
gpt4 key购买 nike

我有一个类似于 this question 的问题但更复杂。我正在尝试在表格 View 单元格中绘制文本,该单元格的右上方有日期标签,右下方有角标(Badge),如下所示:

+-----------------------+----+
| Lorem ipsum dolor sit |DATE|
| amet, consectetur +----+
| adipiscing elit. Integer |
| ligula lectus, convallis |
| non scelerisque +-----+
| quis, tempor at nibh |BADGE|
+----------------------+-----+

如果文本较多或较少,我希望单元格变大或变小:

+-----------------------+----+
| Lorem ipsum dolor sit |DATE|
| amet, consectetur +----+
| adipiscing elit. Integer |
| ligula lectus, convallis |
| non scelerisque quis, |
| tempor at nibh. Curabitur |
| eget diam ligula. |
| Pellentesque a elit |
| dolor, a ullamcorper +-----+
| risus. |BADGE|
+----------------------+-----+

旧问题的答案链接到一个项目,该项目展示了如何使文本围绕已知形状流动。但我事先不知道形状,因为我需要角标(Badge)与文本底部对齐。

这可能吗?如果是这样,我该如何绘制文本,如何计算出文本的高度?

最佳答案

您的情况还不错,因为所有内容都是矩形,而且宽度似乎是固定的。有关一些入门代码,请参阅 ColumnView .

下面是我将如何攻击它:

  • 共有三个矩形:顶部、中间和底部。顶部和底部的尺寸已知。只有中间可以垂直拉伸(stretch)。
  • 创建一个CTFrameSetter。为顶部框创建一个路径并创建一个 CTFrame 来布置它。那部分是肯定的,所以坚持下去。如果所有文本都适合,那么您就完成了。
  • 为紧靠顶框下方的中间框创建路径。让它尽可能短(我假设你想要 一些 空间,即使文本可以放在顶部和底部框中)。
  • 为中间框正下方的底部框创建路径。
  • 使用CTFrameSetter 为中间框架和底部框架创建框架。询问它能够布局多少文本。如果它完成了一切,你就完成了。这是您愿意绘制的最小框。
  • 如果溢出,将中间框的大小增加一行。再次尝试布置中间和底部的盒子。重复直到适合。
  • 现在您知道整个 View 的大小并可以布置所有内容。

其中有几个地方需要优化,但它可能比您想象的要快。

关于ios - 如何绘制围绕右上角和右下角的对象流动的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14860551/

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