向UITextView添加大纲/笔划

tru*_*nse 5 core-graphics objective-c uitextview core-text ios

我想UITextView在用户输入时为可编辑文本添加轮廓或笔划.完全像模因:http://t.qkme.me/3oi5rs.jpg

在此输入图像描述

我必须使用,UITextView因为我需要多线支持.我已经尝试了所有的方法,并得出了我必须使用的结论CoreText.我几乎所有的解决方案都在工作,但是卡在textview文本中的文本卡住了.我drawRect在日常subviewUITextView正确绘制大纲文本,直到文本换行.即使文本用户输入被包装,我绘制的轮廓文本也没有.这是我对该drawRect方法的实现:https://gist.github.com/4498988.在第29行,我使用char包装:

CTLineBreakMode linebreakmode = kCTLineBreakByCharWrapping;
Run Code Online (Sandbox Code Playgroud)

我已经尝试过wordwrapping选项(这也是默认选项)没有用.

我的问题是:如何将我绘制的文本正确包装,以便它显示为键入文本的大纲?

Alb*_*haw 0

只需用CSS制作一个字符串

NSString *htmlstring = [[NSString alloc] initWithFormat:@"<html><font style=\"text-shadow: 0 0 0.2em #F87, 0 0 0.2em #F87\">%@</font></html>", YourTextView.text, nil];
Run Code Online (Sandbox Code Playgroud)

^这将使 TextView 中的任何文本在网页上发光。(如果你愿意,你也可以给它一个黑色背景......使用这个:

NSString *htmlstring = [[NSString alloc] initWithFormat:@"<html><body bgcolor=\"#000000\"><font style=\"text-shadow: 0 0 0.2em #F87, 0 0 0.2em #F87\">%@</font></body></html>", YourTextView.text, nil];
Run Code Online (Sandbox Code Playgroud)

现在将其保存为 html 文件并将其加载到 UIWebView 中。或者通过 javascript 将其注入 URL 并将该 URL 加载到 UIWebView 中。

设置 UIWebView 框架和位置以匹配 UITextView 的框架和位置,以便它位于其上方,并显示带有黑色背景的红色发光文本。