NSString drawInRect : 文本没有被剪裁到给定的高度

Posted

技术标签:

【中文标题】NSString drawInRect : 文本没有被剪裁到给定的高度【英文标题】:NSString drawInRect : text is not clipped to the given height 【发布时间】:2012-04-03 12:44:05 【问题描述】:

我正在使用 NSString drawInRect 函数绘制文本,如下所示

[nsStrToDraw drawInRect:cgRect withFont:uiFont lineBreakMode:UILineBreakModeCharacterWrap alignment: UITextAlignmentLeft];

//nsStrToDraw 是“回车” //ui字体大小为32 //并且cgRect是(100, 100, 100, 20);

问题在于,即使边界矩形 (cgRect) 的高度为 20,文本也不会被剪裁到给定的高度,而是以适合的高度绘制。

注意:文本被剪裁到给定的宽度,只是它似乎没有剪裁到给定的高度。

关于如何解决这个问题的任何想法?

谢谢,

【问题讨论】:

【参考方案1】:

在绘制文本之前添加您自己的剪切矩形,使用CGContextClipToRect

【讨论】:

谢谢,我也有过这样的想法。我想知道这是否可以在 drawInRect 函数本身中修复,或者是否有任何其他方式.. 看起来没有。【参考方案2】:

UIViews 不会剪辑他们的内容,除非你设置了clipsToBounds = YES

【讨论】:

以上是关于NSString drawInRect : 文本没有被剪裁到给定的高度的主要内容,如果未能解决你的问题,请参考以下文章

drawInRect: withAttributes 文本垂直居中或放置一些填充

drawAtPoint: 和 drawInRect: 模糊文本

使用 drawInRect:withAttributes 对齐文本:

iOS drawInRect:属性使用多行执行文本截断

instanceRespondToSelector 在不应该返回 true 时返回

drawInRect:失去图像分辨率的质量