作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个 UIView 的子类,它实现了绘制 CoreText 的代码。在应用程序中,该 UIView 绘制在 UIScrollView 内。这是我目前在 drawRect 中使用的代码:渲染 NSAttributedString:
CGContextRef context = UIGraphicsGetCurrentContext();
float viewHeight = self.bounds.size.height;
CGContextTranslateCTM(context, 0, viewHeight);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextSetTextMatrix(context, CGAffineTransformMakeScale(1.0, 1.0));
CGMutablePathRef path = CGPathCreateMutable();
CGRect bounds = CGRectMake(PADDING_LEFT, -PADDING_TOP, self.bounds.size.width-20.0, self.bounds.size.height);
CGPathAddRect(path, NULL, bounds);
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((CFMutableAttributedStringRef)attrString);
CTFrameRef frame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, 0), path, NULL);
CFRelease(framesetter);
CFRelease(path);
CTFrameDraw(frame, context);
最佳答案
您的基本想法对于突出显示来说还不错。我不知道这是否真的比在绘制时突出显示字形更容易,但这不是一个坏主意,并且可以轻松打开和关闭突出显示,因此非常好。
与其创建大量 View ,不如将核心文本放在 CALayer
上反而。然后你可以创建额外的高亮层来覆盖文本。这将所有内容都保留在一个 View 中。层比 View 便宜得多。如果您只是想进行“荧光笔”样式的突出显示,那么您只需设置 backgroundColor
和 frame
对于图层,你就完成了。
关于iphone - 如何通过更改突出显示颜色突出显示 CoreText?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6779051/
有没有一种方法可以“标记”对象的属性,使它们在反射中“突出”? 例如: class A { int aa, b; string s1, s2; public int AA
我是一名优秀的程序员,十分优秀!