我是iOS开发的新手,这是我的问题。 在我的应用程序中,我有一些looong文本要显示,但在那些文本中,我想要一些词语加下划线和“活跃”。 我的意思是“活跃”是我可以点击其中一个单词来弹出定义或图片。
我想使用UITextView和UILabel这样我使用Textview直到我得到一个活跃的单词(我通过连接到弹出窗口的标签显示)然后我再次使用Textview。
如果我想要这个: bla bla bla bla ACTIVE bla bla bla bla ...
我会用: TextView标签TextView ...
除此之外,我不知道如何做到这一点,我意识到这是一个非常糟糕的做法。
我的文字和文字必须在XML文件中,而且我不会使用最好的结构......
答案 0 :(得分:0)
如果您想使用UITextView实现此功能,那么它就不那么难了。必须有一些逻辑来实现这种事情。以下是一些想法。
如果你想在所选单词的rect中加下划线的单词draw-line。
从UITextView获取选定的单词,
-(void)textViewDidChangeSelection:(UITextView *)textView
{
@try
{
NSLog(@"%@",[textView.text substringWithRange:textView.selectedRange]);
}
@catch (NSException *exception)
{
}
}
要显示该位置的弹出窗口,请再次使用UITextView的Delegate方法- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
,然后只需获取光标位置并显示该位置的弹出窗口。这样的事情。
AutoCompleteView *autoCompleteView = [[AutoCompleteView alloc] initWithContent:suggestions forText:text];
autoCompleteView.delegate = self;
CGPoint cursorPosition = [textView caretRectForPosition:textView.selectedTextRange.start].origin;
CGRect frame = CGRectMake(cursorPosition.x, cursorPosition.y+30, 150, 100);
popoverController = [[WEPopoverController alloc] initWithContentViewController:autoCompleteView];
popoverController.delegate = self;
[popoverController presentPopoverFromRect:frame inView:commentView permittedArrowDirections:(UIPopoverArrowDirectionUp) animated:YES];
希望您对自己的要求有所了解。