gpt4 book ai didi

ios - UIImage PNG 不透明度调整

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:42:05 31 4
gpt4 key购买 nike

我使用具有透明度的 .png 图像创建了一个自定义按钮。但是,当我将它实现为 UIImage 时,透明度会丢失。这是我正在使用的代码:

- (void)setMyCustomBackButton;
{
UIImage *backButtonImage = [UIImage imageNamed:@"Back Button.png"];
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
[backButton setBackgroundImage:backButtonImage forState:UIControlStateNormal];
[backButton addTarget:self action:@selector(popCurrentViewController) forControlEvents:UIControlEventTouchUpInside];
backButton.frame = CGRectMake(0, 0, backButtonImage.size.width, backButtonImage.size.height);


UIView *backButtonView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 63, 33)];
backButtonView.bounds = CGRectOffset(backButtonView.bounds, -12, -2);
[backButtonView addSubview:backButton];
UIBarButtonItem *finalBackButton = [[UIBarButtonItem alloc] initWithCustomView:backButtonView];
self.navigationItem.leftBarButtonItem = finalBackButton;
}

是否有用于透明度的 UIImage 属性?它与不透明度有关吗?

最佳答案

如果您在图像编辑软件中创建 PNG,请确保在创建图像时已对透明度进行编码。有时,当您将某些内容导出为 PNG 时,某些图像编辑器会提供默认情况下未选中的“保存透明度”选项。

除此之外,PNG 上的任何透明度都将显示在 UIButtonTypeCustom 上。您不需要做任何特殊的事情来保持正在加载 PNG 的 UIImage 的透明度。

在代码中使用图像之前,请在预览中打开它以确保透明度存在。

哦,回答你的另一个问题,UIImage does not have any properties relating to transparency .最接近的是 UIViewalpha 属性,但即使这样也只会改变 UIView 的整体不透明度。

编辑:我第一次阅读您的问题时错过了这个。尝试:

UIBarButtonItem *finalBackButton = [[UIBarButtonItem alloc] initWithCustomView:backButton];

不需要有 backButtonView。您可以将 UIButton 作为自定义 View 传入。我用它来创建自定义栏按钮项目。这应该可以解决您的问题。

编辑 2:UIBarButtonItem 类没有可以设置的 alpha 属性。此外,修改您设置为 UIBarButtonItem 的自定义 View 的 UIButton 的 alpha 属性不会影响 UIBarButtonItem 的透明度。

您可以执行此操作的唯一方法是修改用于 UIButton 的源图像的透明度。

修改原始 PNG 以获得所需的透明度(根据您的评论,您需要非常低的透明度)。在导出 PNG 之前,使用图像编辑软件/预览微调透明度。

关于ios - UIImage PNG 不透明度调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17605416/

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