我正在使用HTMLLabel(https://github.com/nicklockwood/HTMLLabel),我想实现一些插件。所以我在HTMLLabel.m文件中写道:
- (void)drawTextInRect:(CGRect)rect
{
UIEdgeInsets insets = {0, 5, 0, 5};
[super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)];
}
但是方法永远不会被调用,任何想法为什么?谢谢你的帮助!
答案 0 :(得分:1)
我的猜测是因为这个班级正在做的事情是非法的。例如,它会覆盖drawRect:
,您不允许对UILabel执行此操作。而且,它在不调用super
的情况下执行此操作。因此它干扰了底层UILabel的正常工作,因此您无法访问这些正常工作。
从更积极的角度来看:HTMLLabel不是标签。它构成了一个UILabel,从某种意义上讲,它全部被包裹起来并通过UILabel进入;但它并没有使用UILabel来绘制文本;它使用一个名为HTMLLayout的帮助器视图。因此,从潜在的UILabel的观点来看,实际上并没有发生任何事情。它没有向您咨询有关绘制文本的信息,因为它没有绘制任何文本。