gpt4 book ai didi

ios - 具有多行的 UIBarButtonItem 显示为低分辨率

转载 作者:行者123 更新时间:2023-11-29 13:30:23 25 4
gpt4 key购买 nike

我正在尝试创建一个包含两行文本的 UIBarButtonItem,例如 iPod.app 中的“正在播放”按钮

我在此线程中使用提供的代码:How can we put two line in UIBarButtonItem in Navigation Bar

但是在设备上运行时,按钮以低分辨率显示,如下所示:

https://www.dropbox.com/s/vp5vn9mmq0f96n8/2012-08-21%2014.57.12.png

为什么?我不想使用静态图像,因为我的应用已本地化。

最佳答案

要解决此问题,如果设备是视网膜设备,请使用 UIGraphicsBeginImageContextWithOptions 而不是 UIGraphicsBeginImageContext。然后将上下文的比例设置为主屏幕比例。

+ (UIImage *)nowPlayingButton {

UILabel * addCustomLabel =
[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 40, 25)];
addCustomLabel.text =
NSLocalizedString(@"NOW_PLAYING_NEWLINE",
@"Now playing text divided on two lines");
addCustomLabel.textColor = [UIColor whiteColor];
addCustomLabel.font = [UIFont boldSystemFontOfSize:10];
addCustomLabel.numberOfLines = 2;
addCustomLabel.backgroundColor = [UIColor clearColor];
addCustomLabel.textAlignment = UITextAlignmentCenter;

CGSize size = addCustomLabel.bounds.size;

static CGFloat scale = -1.0;

UIScreen *screen = [UIScreen mainScreen];
scale = [screen scale];

if(scale > 0.0) {
UIGraphicsBeginImageContextWithOptions(size, NO, scale);
} else {
UIGraphicsBeginImageContext(size);
}

CGContextRef context = UIGraphicsGetCurrentContext();
[addCustomLabel.layer renderInContext: context];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
CGContextRelease(context);

return img;
}

关于ios - 具有多行的 UIBarButtonItem 显示为低分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12056463/

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