存在以下问题:我使用UIImage,当我以编程方式创建它而不设置图像大小时,我的图像会因某些问题而垂直拉伸。看截图:
我的代码是:
[backButton setBackButtonBackgroundImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
此外,我的图像名称相同,但前缀为“@ 2x”。可能有什么麻烦?
答案 0 :(得分:4)
尝试为UINavigationBar设置返回指示符图像,而不是为UIBarButtonItem设置setBackButtonBackgroundImage
[[UINavigationBar appearance] setBackIndicatorImage:[UIImage imageNamed:@"back_btn.png"]];
[[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:[UIImage imageNamed:@"back_btn.png"]];
图像的颜色由tintColor属性控制。
或使用
[[UIImage imageNamed:@"back_btn.png"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]
答案 1 :(得分:0)
这可能是由于UI按钮的高度很大,可以通过减小按钮的大小来尝试。
答案 2 :(得分:-1)
我会尝试将UIImageView作为子视图添加到按钮并在UIImageView上设置图像
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Phone.png"]];
[imageView setFrame:CGRectMake(0, 0, button.frame.size.width, button.frame.size.height)];
imageView.contentMode = UIViewContentModeScaleAspectFit;
[button addSubview:imageView];