导航栏按钮图像出来像素化

时间:2016-08-08 00:51:20

标签: ios swift

我试图在我的导航控制器上使用UIImage作为我的左栏按钮。在设计文件中,按钮为40X40px。这最终太大而无法用于按钮。如下所示:

enter image description here

enter image description here

我将按钮缩小到16px,现在我得到了这样的结果:

enter image description here

我似乎无法确定按钮的大小,使其看起来清晰。我尝试过28px-10px。有什么建议?

编辑添加了10px,20px和30px的图像

enter image description here enter image description here enter image description here

设置按钮的代码

var settingsImage = UIImage(named: "SettingsButton10px.png")
settingsImage = settingsImage?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
let settingsButton : UIBarButtonItem = UIBarButtonItem(image: settingsImage, style: UIBarButtonItemStyle.Plain, target: self, action: #selector(HomeController.settingsPressed))
self.navigationItem.leftBarButtonItem = settingsButton

3 个答案:

答案 0 :(得分:1)

在您的项目Assets.xcassets中,创建一个Image Set并提供@ 1x,@ 2x和@ 3x版本。因此,如果原始图像大小为20x20,则还需要40x40和60x60。

然后,当您在UIImage中引用图像时,请使用Assets.xcassets中没有文件扩展名的图像集名称进行操作。因此,如果ImageSetAssets.xcassets的名称为SettingsIcon,您可以加载图片,如下所示:

UIImage(named: "SettingsIcon")

答案 1 :(得分:1)

如果加入@ 2x& @ 3x图像尺寸没有帮助你为什么我们不能用矢量pdf ..?这是我有的东西

  1. 您可以从here,获取 PDF图像将图像格式从 PNG 更改为 PDF enter image description here < / LI>
  2. 然后将下载的pdf图像拖放到 Assets.xcassets 中。然后将比例因子更改为单一向量
  3. enter image description here

    3.确保图像集看起来像这样

    enter image description here

    1. 由于我们在资产中添加了图片,因此无需添加扩展程序,因此请替换此

      var settingsImage = UIImage(named: "SettingsButton10px.png")
      

      var settingsImage = UIImage(named: "SettingsButton10px")
      
    2. <强> RESUT:

      • 使用PNG 25px

      enter image description here

      • 使用PDF 25px

      enter image description here

      所以现在不需要添加双倍和三倍大小的图像, Pixalation 问题将在我们使用PDF时修复。

答案 2 :(得分:0)

Apple在此处提供了有关自定义图标大小的一些信息:https://developer.apple.com/ios/human-interface-guidelines/graphics/custom-icons/

你想要iPhone 5的尺寸是“大约44px乘44px”,所以你可以在正确的球场上找到它。这是确保iOS知道这是视网膜分辨率资产的问题。

最简单的方法是将其放在Assets.xcassets内的“图像集”中。这些是用于多种不同比例的容器,允许iOS为给定设备选择适当的版本并显示它而不会出现像素化。

在视网膜前设备中使用“1x”刻度,“2x”是最常见的(并且是您需要为iPhone 5模拟器设置的),而“3x”适用于iPhone 6 Plus尺寸的手机

如果您尚未创建3x图像,暂时将其留空是很好的。