【问题标题】:Incorrect image stretching in iOS [duplicate]iOS中不正确的图像拉伸[重复]
【发布时间】:2014-01-23 19:31:57
【问题描述】:

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

我的代码是:

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

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

【问题讨论】:

  • 你知道你可以将后退按钮设置为没有文字给你一个箭头。
  • 不仅仅是后退按钮的问题。它出现在以编程方式创建的每个图像
  • self.youuttonr.contentMode = UIViewContentModeScaleAspectFit;
  • @Deepesh 投票结束问题是一个更好的主意,而不是仅仅链接到另一个回答问题的 SO 帖子。

标签: ios objective-c


【解决方案1】:

尝试为 UINavigationBar 设置 Back Indicator Image,而不是为 UIBarButtonItem 设置BackButtonBackgroundImage

[[UINavigationBar appearance] setBackIndicatorImage:[UIImage imageNamed:@"back_btn.png"]];
[[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:[UIImage imageNamed:@"back_btn.png"]];

图像的颜色由 tintColor 属性控制。

或者使用

[[UIImage imageNamed:@"back_btn.png"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]

【讨论】:

    【解决方案2】:

    可能是因为你的 UIbutton 高度太大,试试减小按钮的大小。

    【讨论】:

    • 我不会到处设置高度
    【解决方案3】:

    我会尝试将 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];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      • 2021-03-24
      • 2019-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多