【问题标题】:resizableImageWithCapInsets / asset catalog slicing confuses units and pixelsresizableImageWithCapInsets / 资产目录切片混淆了单位和像素
【发布时间】:2014-07-05 08:37:27
【问题描述】:

对于作为新用户发布与图片相关的问题,我深表歉意,我需要更多的声誉才能在我的帖子中包含图片:)

我正在尝试调整图像大小而不缩放其角落。我尝试使用 resizableImageWithCapInsets 以及对资产目录进行切片(尽管后者仅支持 iOS 7+ 的部署目标,这确实不能使其成为解决方案选项......)。我正在使用一个名为“ViewHeaderTest.png”的图像,它是 44x100 像素。大写/插图的每个角应该是一个 16x16 像素的正方形。

这是代码:

    UIImageView *headerTest = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ViewHeaderTest.png"]];
    headerTest.image = [headerTest.image resizableImageWithCapInsets:UIEdgeInsetsMake(8, 8, 8, 8) resizingMode:UIImageResizingModeStretch];
    headerTest.frame = CGRectMake(0, 0, 22, 50);

代码和资产目录切片对我来说产生了相同的结果,奇怪的是,在 stackoverflow 的其他任何地方都没有提到:大写/插图工作正常,但它们被缩放到原来的两倍。基本上看来 resizableImageWithCapInsets 会返回两倍于原始比例的图像。

有接受者吗? :)

【问题讨论】:

  • 附加信息:问题在我熟悉的所有三种切片方式中都存在:1)通过 Interface Builder 进行缩放 2)资产目录切片 3)以编程方式。

标签: ios xcode


【解决方案1】:

找到解决方案:

怀疑是视网膜问题。为了避免 xcode 在使用 cap insets 时混淆视网膜和非视网膜图像,

  • 没有文件扩展名的特殊图像名称,即@"FileName" 而不是@"FileName.png"
  • 在您的项目中具有相应分辨率的文件的视网膜和“正常”版本。 IE。项目中有 FileName.png (100px x 100 px) 和 FileName@2x.png (200px x 200px)。

我很高兴它可以工作,所以我没有检查其中任何一个是否多余:)

【讨论】:

    猜你喜欢
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    相关资源
    最近更新 更多