如何在ios中实现这种布局

时间:2012-12-06 11:03:46

标签: ios uitextfield uilabel

我正在尝试实现类似于此的布局: wanted layout

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

2 个答案:

答案 0 :(得分:0)

这不是最佳解决方案。

但我认为这可以通过autolayout轻松实现。

首先在右侧的自定义单元格上放置一个标签,然后再放置一个标签。

标签 - > TextField - >标签

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

并设置textfield与第一个和最后一个标签的相对位置。因此,如果第一个标签内容更大,它将转移到右侧

答案 1 :(得分:0)

我实际上认为你的下划线想法并不是一个糟糕的想法,可能并不像你想象的那么难。

可能有更简洁(虽然可能更慢)的方法,但最容易想到的是在字符串中设置一个分隔符,您可以使用该分隔符将字符串分解为如下组件:

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

从这里开始,[[myString componentsSeparatedByString:@"^"] objectAtIndex:1];将为您提供下划线。

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

现在您可以使用下划线字符串的大小来覆盖您的UITextField。请务必在underscoreString中考虑分隔符的宽度,或者附加它们或相应地调整UITextField的宽度。请记住,这里还有其他事情需要考虑(如果下划线字符串单词包装会发生什么),但希望这可以回答您当前的问题。

布兰登