iOS中的图像拉伸不正确

时间:2014-01-23 09:10:25

标签: ios objective-c

存在以下问题:我使用UIImage,当我以编程方式创建它而不设置图像大小时,我的图像会因某些问题而垂直拉伸。看截图:

enter image description here

我的代码是:

[backButton setBackButtonBackgroundImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

此外,我的图像名称相同,但前缀为“@ 2x”。可能有什么麻烦?

3 个答案:

答案 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];