2

我有一个图案图像(底部有阴影的红色纹理)。当我使用此代码时

view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"myPattern.png"]];

没关系,阴影在底部。但是当我使用

view.layer.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"subscribe-pattern.png"]].CGColor;

这是一个麻烦。图像翻转(阴影在顶部)。你能告诉我,我该如何解决这个问题?我需要使用第二种方法获得未翻转的图像。

4

1 回答 1

5

正如 bobnoble 在他的评论中提到的,Core Graphics 和 iOS 已经颠倒了起源。iOS 从屏幕左上角开始,Core Graphics 从左下角开始。

通过访问视图的 layer 属性,您将下降到核心图形级别。如果你必须下降到那个水平,你必须开始倒立工作。一个简单的解决方法是预先翻转您的模式。只需将其从图形编辑器中倒置保存即可。如果您需要在 UI 和 CG 级别使用相同的图像,您始终可以保存两个版本。

在代码中,您可以在绘制倒置图像之前翻转和平移 CG 层,然后将该层返回到之前的状态以进行进一步绘制。它有点复杂,但很多 Core Graphics 教程都很好地涵盖了它。

于 2012-10-29T13:52:05.733 回答