我正在尝试在Objective C中实现类似iOS的以下效果。 填空(UITextField)应为内联,并且应该能够拥有自己的inputType。此外,每个视图都是UITableViewCell的cell.contentView类型。我的当前方法是找到字符串的长度并计算包装内容长度到下一行。 计算UITextField的x和y,并在UTextField之后添加另一个UILabel 除此之外还有其他方法吗?
作为EmilioPelaez所说,这并不完全是对您问题的回答,而是一个建议:您可以为每个“序列”(即UILabel-UItextfield等)使用带有水平流的集合视图。该集合视图有两种类型的单元格:1. 具有设置为“1”的行数的uilabel和适合单元格的正确布局。 2. 具有uitextfield和正确布局的另一个单元格。结合:我的当前方法是找到字符串的长度并计算换行内容的长度到下一行。您可以轻松调整不同单元格的宽度,隐藏uitextfield(如果需要),并显示更动态的“序列”(如果需要)。
这并不是对你问题的确切回答,而是一个不同交互方式的建议。 我认为,你可以使用带有属性字符串的UILabel,而不是使用内联文本字段,并在文本字段所在的位置添加一个具有不同颜色的不同字符,可供点击(例如,此字符✚)。当被点击时,您可以显示一个带有文本输入的覆盖层,一旦完成该输入,您就可以使用该文本更新标签(仍然可点击,并且具有不同的颜色)。我认为这个答案也可能相关:iOS中在UITextView中检测属性文本上的轻击
我认为在 iOS9 以下版本中,将 UILabel 分离并计算它们所需的位置是一个不错的解决方案,但如果你可以依赖 iOS,UIStackView 可以极大地简化这个过程。你可以在这个教程中了解更多相关信息: UIStackView 教程 祝你好运!