gpt4 book ai didi

objective-c - UILables、文本流和布局

转载 作者:行者123 更新时间:2023-11-29 11:07:38 32 4
gpt4 key购买 nike

考虑以下情况,我将段落数据发送到需要放置在背景图像上的 View ,该图像在顶部和底部具有固定元素(图 1)

图 1。 UIView Showing text flow and fixed elements

我的想法是将它分成 4 个标签 (Fig1.example2) 我的问题是如何让文本流过标签 1 - 4 给定标签 1,2 & 3 ar 的固定高度。我在这里假设标签 3 应该在标签 4 之前填充,因此是附图中的布局。

有人可以通过示例建议执行此操作的最佳方法吗?

谢谢

最佳答案

希望我能提供更多帮助,但我想我至少可以为您指明正确的方向。

首先,您的想法似乎很有可能,但会涉及大量的文本大小计算,这会很丑陋并且可能不会产生理想的结果。我看到它的工作方式是使用 sizeWithFont: 对字符串的测试部分进行二进制搜索,直到您可以最好地猜测标签适合该大小并且看起来仍然“正确”。然后你必须实际分解字符串并分段跟踪它......这看起来是错误的。

在 iOS 6 中(不幸的是,现在不适用于您,但我会将它作为对其他人的潜在好处发布),您可能会使用一个 UILabel 和一个 NSAttributed 字符串。这里会有几个选项,(我没有做过所以我不确定哪个是最好的)但似乎如果你可以用 html 格式化页面,你可以初始化属性字符串那样。

来自文档:您可以使用初始化方法 initWithHTML:documentAttributes: 和 initWithHTML:baseURL:documentAttributes: 从 HTML 数据创建属性字符串。这些方法返回由 HTML 定义的文本属性作为字符串的属性。它们通过引用 NSDictionary 对象返回由 HTML 定义的文档级属性,例如纸张和边距大小,如“RTF 文件和属性字符串”中所述。这些方法尽可能将 HTML 翻译成 Cocoa 文本系统的结构,但 Application Kit 不提供完整、真实的任意 HTML 呈现。

此处的替代方法是仅使用可用属性,根据图像大小设置行缩进等。我没有在这个级别使用属性字符串,所以我最好的引用是开发人员视频和 NSAttributedString 的编程指南。 https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/AttributedStrings/AttributedStrings.html#//apple_ref/doc/uid/10000036-BBCCGDBG

对于较低版本的 iOS,您最好熟悉 CoreText。最后,您将获得更好看的结果、可重用性/灵 active ,等等。为此,我将从 CoreText 编程指南开始:https://developer.apple.com/library/mac/#documentation/StringsTextFonts/Conceptual/CoreText_Programming/Introduction/Introduction.html

也许其他人可以提供一些示例代码,但我认为与尝试计算 4 个这样的标签相比,仅浏览文档会让您感到头疼。

编辑:我更改了 CoreText 的链接

关于objective-c - UILables、文本流和布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12977185/

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