UIColor的`-colorWithPatternImage:`方法在alpha混合方面存在问题的解决方案。(iOS SDK 4.1)

14

解决方案注释,非问题。

我使用了以下代码将背景设置为一个图案图片:

UIImage *bg     =   SomeImage();
UIColor *bgc    =   [UIColor colorWithPatternImage:bg];
[self setBackgroundColor:bgc];
[self setOpaque:NO];

这个代码可以运行,但是 alpha blending 没有起作用。可能是一个 bug。怎么让它起作用?

  • 平台: iOS SDK 4.1

注意:原文中的"alpha blending"指的是一种图像混合技术,翻译时应该尽量保留原意。

2
啊,你真是个天才!我很高兴你发布了这个Eonil。省去了我数小时的头痛和眼球刮擦。值得一提的是:要访问和修改图层属性,需要导入<QuartzCore/QuartzCore.h> - David Foster
1个回答

12

这段代码使得在模拟器和设备上都能实现alpha混合。

UIImage *bg     =   SomeImage();
UIColor *bgc    =   [UIColor colorWithPatternImage:bg];
[self setBackgroundColor:bgc];
[self setOpaque:NO];
[[self layer] setOpaque:NO];      // Added this line.

1
我不必设置图层为不透明。没有设置也能正常工作。 - Palimondo
@Palimondo,那么我可以假设它已经被修补了。谢谢! - eonil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接