• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - UIImage PNG 不透明度调整

[复制链接]
菜鸟教程小白 发表于 2022-12-12 12:31:44 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

- (void)setMyCustomBackButton;
{
    UIImage *backButtonImage = [UIImage imageNamed"Back Button.png"];
    UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [backButton setBackgroundImage:backButtonImage forState:UIControlStateNormal];
    [backButton addTarget:self actionselector(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 属性?是否与不透明度有关?



Best Answer-推荐答案


如果您在图像编辑软件中创建 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 传入。我用它来创建自定义栏按钮项目。这应该可以解决您的问题。

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

您可以这样做的唯一方法是修改用于 UIButton 的源图像的透明度。

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

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

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap