iOS开发记录

iOS之图片裁剪遇到的问题(变形)

2019-11-14  本文已影响0人  Just_go
bg_discountcolor_active@3x.png

如图我们想把这张图片拉大, 但保持圆角不变, 肯定不能直接把image放大, swift提供两个方法
let imageV = UIImageView(frame: CGRect(x: 50, y: 200, width: width, height: height))
var image = UIImage(named: "bg_discountcolor_active")

  1. image = image?.stretchableImage(withLeftCapWidth: 8, topCapHeight: 8)
    这个方法保证图片从上面8, 左边8的像素点拉伸
  2. image = image?.resizableImage(withCapInsets: UIEdgeInsets(top: 8, left: 8, bottom: 8, right: 8), resizingMode: .stretch)
    这个方法圈出一个四面间距都为8的区域, 拉伸的时候只有这块区域变大, 只有设置了值的那个方向的区域才会被保护起来

但是在实际使用的时候遇到的问题总是拉伸变形, 甚至会突出来一块, 查找原因
图片尺寸11454(@3x)
那么实际尺寸应该是38
18, 所以拉伸的间距纵向不能超过9, 横向不能超过19, 考虑到保存圆角, 这里纵向值应该为9, 否则超过一半, 因为iOS的机制, 超出部分会向外扩张, 造成变形
比如: image = image?.stretchableImage(withLeftCapWidth: 20, topCapHeight: 20)

变形图.png
上一篇下一篇

猜你喜欢

热点阅读