clipToBounds问题:UIView和CALayer

时间:2011-03-01 18:22:42

标签: ios uiview core-graphics calayer core-text

我有一个以NSString为参数的类,使用Core Text获取文本的大小,提取每一行并使用不同的x偏移呈现文本行以产生偏斜效果。

当Core Graphics绘制文本行时,我也会应用阴影,但是这些阴影被视图frame剪切并且clipToBounds无法解决此问题。

问题1。 我了解clipsToBounds = NO 会影响子视图。这意味着UIViews,还是它也适用于子CALayer

问题2。 当我绘制CTLines时,我可以使用不同的UIViewCALayer上下文进行渲染,因此我可以正确使用clipsToBounds吗?

1 个答案:

答案 0 :(得分:3)

  1. clipsToBounds仅适用于子图层,而不适用于图层内容,是。

  2. 您可以扩展目标图层的大小以包含阴影所需的区域,您可以从阴影的半径和偏移中找出该区域。您可以操纵图层的bounds属性,以便即使图层已经生长,原点也会保留在同一位置。

  3. 例如,如果你从一个(100,100)矩形开始并且有一个带有(0,0)偏移的1px阴影:

    layer.bounds = CGRectMake(-1, -1, 102, 102).