iOS之圖片裁剪遇到的問題(變形)

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的像素點(diǎn)拉伸
  2. image = image?.resizableImage(withCapInsets: UIEdgeInsets(top: 8, left: 8, bottom: 8, right: 8), resizingMode: .stretch)
    這個方法圈出一個四面間距都為8的區(qū)域, 拉伸的時(shí)候只有這塊區(qū)域變大, 只有設(shè)置了值的那個方向的區(qū)域才會被保護(hù)起來

但是在實(shí)際使用的時(shí)候遇到的問題總是拉伸變形, 甚至?xí)怀鰜硪粔K, 查找原因
圖片尺寸11454(@3x)
那么實(shí)際尺寸應(yīng)該是38
18, 所以拉伸的間距縱向不能超過9, 橫向不能超過19, 考慮到保存圓角, 這里縱向值應(yīng)該為9, 否則超過一半, 因?yàn)閕OS的機(jī)制, 超出部分會向外擴(kuò)張, 造成變形
比如: image = image?.stretchableImage(withLeftCapWidth: 20, topCapHeight: 20)

變形圖.png

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容