0

我正在尝试实现与此类似的布局: 想要的布局

我对如何实现这一点感到困惑。iOS 6 中的新功能、容器单元格和自动布局,或许应该有所帮助,但我在其中看到的应用程序已经很老了,他们在没有这些新功能的情况下实现了这些。我想要实现的是一个标签、一个文本字段,然后是另一个标签,它可能有足够长的文本,以至于它必须换行到下一行,就像我附加的图像中一样。实现此目的的一种可能方法是放置一个带有两行的标签,并放置例如重复的下划线字符,然后以某种方式测量下划线开始和结束的位置并覆盖该区域的文本字段。但这很困难,而且看起来很麻烦。我怎样才能做到这一点?

4

2 回答 2

0

这将不是最佳解决方案。

但我认为这可以在自动布局的帮助下轻松实现。

首先在自定义单元格的右侧放置一个标签,然后在该单元格的右侧放置一个文本字段,然后在该单元格的右侧再次放置一个标签。

标签 --> 文本框 --> 标签

在这里,第一个标签应该在你需要填充剩余部分的另一个标签上的 textField (How) 之前填充单词。

并使用第一个和最后一个标签设置文本字段的相对位置。因此,如果第一个标签内容更大,它将移动到右侧

于 2012-12-06T11:11:19.070 回答
0

我实际上认为您的下划线想法并不完全是一个糟糕的想法,并且可能没有您想象的那么难。

可能有更简洁(虽然可能更慢)的方法来做到这一点,但最简单的方法是在你的字符串中设置一个分隔符,你可以使用它来将字符串分成如下组件:

为什么 ^________^ 你今天早上上班迟到了?

从这里,[[myString componentsSeparatedByString:@"^"] objectAtIndex:1];会给你你的下划线。

下一步是获取尺寸,像这样[underscoreString sizeWithFont:[UIFont fontWithName:@"<your font>" size:<your size>]];

现在你有了下划线字符串的大小,你可以用它来覆盖你的 UITextField。请务必考虑下划线字符串中定界符的宽度,附加它们或相应地调整 UITextField 的宽度。请记住,这里还有其他事情需要考虑(例如,如果下划线字符串换行会发生什么),但希望这能回答您的直接问题。

于 2012-12-06T18:29:21.830 回答