gpt4 book ai didi

iphone - 为什么 initWithPatternImage 会丢失 PNG 的 alpha 值

转载 作者:搜寻专家 更新时间:2023-10-30 20:07:19 25 4
gpt4 key购买 nike

有人见过 [UIColor initWithPatternImage] 忽略 PNG 的 alpha 值的问题吗?如果是这样,最好的解决方法是什么?

我使用 png 作为我的按钮对象数组的背景层,它包含图像中每个像素的几个预设 alpha 值,这些值将用作纹理背景。它可以作为图案/纹理颜色很好地加载,但它会将所有关键透明区域显示为不透明的黑色。

获得正确的 alpha 值非常重要,这样按钮图像才能正确显示。按钮框架不包括来自背景的 alpha 阴影,因为那不是按钮的“可点击”部分。此外,我的按钮对象的图像和背景图像也使用了透明度,所以它真的需要在每个按钮后面直接有一个清晰的背景来让正确的真实当前颜色设置通过(最底层的 UIView 将其背景颜色设置为当前用户选择的颜色)。只为包含此纹理的 UIView 层设置单个 alpha 值也不能满足我的需要。

如有任何帮助,我们将不胜感激。我当前的解决方法是使用 png 使用多个 UIImageView 的完全成熟、重复编程的布局,而不是使用带有图案填充的单个 UIView。

这是一段代码,但它是将 UIImage 转换为 UIColor 以用作图案/纹理颜色的非常标准的代码:

    UIView *selectorView = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,320)];
UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"SelectorViewBackground.png"]];

selectorView.backgroundColor = background;

[mainView addSubview:selectorView]; // pattern background layer. Add UIButtons on top of this selectorView layer
[self addSubview:mainView]; // current user selected color set in mainView.
[selectorView release];
[background release];

最佳答案

我在设置具有一定透明度的 UIView 背景时遇到了同样的问题,我就是这样解决的:

theView.backgroundColor = [UIColor clearColor];
theView.layer.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"the_image_with_transparancy.png"]].CGColor;

关于iphone - 为什么 initWithPatternImage 会丢失 PNG 的 alpha 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5086806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com