gpt4 book ai didi

objective-c - UIImage resizableImageWithCapInsets : not working as expected

转载 作者:太空狗 更新时间:2023-10-30 03:19:45 25 4
gpt4 key购买 nike

我正在编写我的第一个 iOS 应用,目标是 iOS 5.0+ 平台。我正在使用 UIAppearance 协议(protocol)来自定义应用程序 UI。

我正在尝试更改整个应用程序中 UIBarButtonItem 的背景。由于我的 UIBarButtonItem 可能会根据所使用的文本或图标改变大小,我正在尝试将 UIImage resizableImageWithCapInsets: 与我的背景 png 一起使用。

我最初在 Ray Wenderlich 上找到了我需要的代码.使用完全相同的代码,以及与上述教程中使用的图像非常接近的图像,我得到了奇怪的结果。也许这只是我对 Cocoa Touch 的经验不足。

这是我正在使用的代码。

DreamsAppDelegate.m - 自定义外观:

UIImage *btnBg = [[UIImage imageNamed:@"navBarButton-bg"] 
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 6, 0, 6)];

[[UIBarButtonItem appearance] setBackgroundImage:btnBg
forState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];

这是我尝试使用的 png 背景图片

png background

这是结果(在模拟器中)

result of trying to use resizableImageWithCapInsets:

最佳答案

leftright 之间以及 topbottom 之间的图像部分是平铺以填充图像所需的空间。试试 UIEdgeInsetsMake(15, 6, 15, 6)

一般而言,如果您的图像具有连续渐变,则重复部分的高度应仅为 1 像素。由于您的按钮图像是 31 像素高,topbottom(UIEdgeInsetsMake 的第一个和第三个参数)应该加起来为 30。他们不' 必须相等; UIEdgeInsetsMake(8, 6, 22, 6) 会将重复的部分向上移动,从而使背景变浅。

此外,您附加的文件是图像的普通版本还是视网膜 ('@2x') 版本?插图必须在普通版本的大小范围内。

关于objective-c - UIImage resizableImageWithCapInsets : not working as expected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10309064/

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