我想在UITextView的文本之间插入一个UITextField,以提供“填空”功能。我知道UITextField无法添加到UITextView中,所以我想通过在UITextView上维护这些UITextField的空间来将UITextField添加到UITextView的超级视图中。
如何确定特定字符相对于UITextView原点的坐标? textView的框架及其超级视图是相同的。任何人都可以告诉我该怎么做?有没有其他方法可以在文本段落中填写空白功能?
答案 0 :(得分:0)
您可以使用UIStringDrawing additions to the NSString class来帮助查找字符的位置。
// characterIndex is the index of the character for which you are finding the position
NSString *string = [myTextView.text substringToIndex:characterIndex];
CGSize sizeOfString = [string sizeWithFont:myTextView.font constrainedToSize:myTextView.contentSize];
如果您要查找的字符位于文本视图的第一行,sizeOfString
将为您提供坐标(偏离行高)。
如果您要查找的字符不在第一行,则需要迭代确定每个字符的位置,直到您要查找的字符为止,修改子字符串以在每次检测时删除以前的文本行一行的结尾。您可以通过注意迭代之间sizeOfString
的高度何时发生变化来检测线的末尾。