添加UITextField内联UILabel(填空)

时间:2015-09-21 22:13:17

标签: ios objective-c uitextfield uilabel textkit

我正在尝试在Objective C中为iOS实现类似的功能。 enter image description here

填空(UITextField)应该是内联的,并且应该能够拥有自己的inputType。

此外,每个视图都是cell.contentView的{​​{1}}类型。

我目前的方法是找到字符串的长度,并计算包裹内容的长度到下一行。计算UITableViewCell的{​​{1}}和x,并在y

之后添加另一个UITextField

除此之外还有其他方法吗?

3 个答案:

答案 0 :(得分:2)

正如EmilioPelaez所说,这不是你问题的答案,而是一个建议:

您可以为每个“序列”使用具有水平流的集合视图(即UILabel-UItextfield-etc. ...)

该集合视图有两种单元格:

  1. 一个有一个uilabel,行数设置为“1” 以及适合细胞的正确布局。
  2. 另一个具有uitextfield和正确布局的
  3. 加上:

      

    我目前的做法是找到字符串的长度,并计算包裹内容的长度到下一行。

    您可以轻松调整不同单元格的宽度,隐藏uitextfield(如果需要)并显示更动态的“序列”(如果需要)

答案 1 :(得分:1)

这不是您问题的答案,而是建议进行不同的互动。

我认为不是使用内联textFields,而是使用带有属性字符串的UILabel,并且在textFields的位置,你可以添加一个不同的颜色,你可以点击它(例如,这个角色✚) )。

点击时,您可以显示带有文本输入的叠加层,一旦完成输入,您就可以使用文本更新标签(仍可点击,并使用不同的颜色)。

我认为这个答案可能也很重要:Detecting taps on attributed text in a UITextView in iOS

答案 2 :(得分:0)

我认为你的UILabels分离和计算所需位置的解决方案对于低于iOS9的版本来说是一个很好的解决方案,但如果你可以依靠iOS,UIStackView可以大大简化你的流程。您可以在本教程中阅读有关该过程的更多信息: UIStackView Tutorial

祝你好运!