DTAttributedTextContentView绘制边框

时间:2013-11-13 14:40:36

标签: ios objective-c uitextview core-text dtcoretext

我发现绘图边框是在DTCoreText中实现的。但是找不到任何有关如何做到这一点的资源。我收到一些HTML文本,修改它,然后使用DTAttributedTextContentView显示它。所以我的问题是,我可以以某种方式添加边框吗?如果是,也许某人有一个例子或知道在哪里找到如何做到这一点?提前谢谢。

1 个答案:

答案 0 :(得分:1)

我没有找到任何解决方案,所以我做了一个解决方法。万一有人会寻找这个: 我创建了DTCSSStylesheet,为带有填充的html标签指定了一个css。然后我在DTCoreTextContentViewDelegate方法中画了一个边框。

- (BOOL)attributedTextContentView:(DTAttributedTextContentView *)attributedTextContentView shouldDrawBackgroundForTextBlock:(DTTextBlock *)textBlock frame:(CGRect)frame context:(CGContextRef)context forLayoutFrame:(DTCoreTextLayoutFrame *)layoutFrame
{   
    UIBezierPath *roundedFrame = [UIBezierPath bezierPathWithRoundedRect:frame cornerRadius:5];

    CGColorRef color = [textBlock.backgroundColor CGColor];
    if (color)
    {
        CGContextSetFillColorWithColor(context, color);
    }
    CGContextAddPath(context, [roundedFrame CGPath]);
    CGContextFillPath(context);

    CGContextAddPath(context, [roundedFrame CGPath]);
    CGContextSetRGBStrokeColor(context, 0, 0, 0, 1);
    CGContextStrokePath(context);

    return NO; // draw standard background
}