实际上没有必要这么给哦(64*11)~~,右边还有有一些浪费像素的,完全可以给我们自己拉伸。
废话不多说。
哪假如说,输入的内容很长呢加入有255个点?。我们把他作为背景的话。
let imageView = UIImageView.init(frame: CGRectMake(50, 100, 264, 11))
imageView.image = UIImage.init(named: "kaopu_back")
view.addSubview(imageView)
很差的效果
这样写代码,会惨目忍睹,这时候,你就需要图片拉伸了。
api在这里使用起来也非常简单咯 ,就是
let imageView = UIImageView.init(frame: CGRectMake(50, 100, 264, 11))
imageView.image = UIImage.init(named: "kaopu_back")?.resizableImageWithCapInsets(UIEdgeInsetsMake(0, 16, 0, 9))
view.addSubview(imageView)
效果就是
那么为什么是:UIEdgeInsetsMake(0, 16, 0, 9),分别是(上,左,下,右),因为我们要告诉UIImage拉伸的区域是哪里。
这幅图够你懂了那么对于我们的图片呢?
对于我们的图片呢?那么,你理解为什么是UIEdgeInsetsMake(0, 16, 0, 9)了吧。
有人一定会问:
func resizableImageWithCapInsets(_ *capInsets*: UIEdgeInsets, resizingMode *resizingMode*: UIImageResizingMode) -> UIImage
那mode取不不同值有什么效果呢?不指定默认就是Tile。
Stretch真的就像是.9拉伸一样,Tile有点repeat的意思。
let imageView = UIImageView.init(frame: CGRectMake(50, 100, 264, 33))
imageView.image = UIImage.init(named: "kaopu_back")?.resizableImageWithCapInsets(UIEdgeInsetsMake(4, 16, 4, 9))
view.addSubview(imageView)
let imageView2 = UIImageView.init(frame: CGRectMake(50, 150, 264, 33))
imageView2.image = UIImage.init(named: "kaopu_back")?.resizableImageWithCapInsets(UIEdgeInsetsMake(4, 16, 4, 9), resizingMode: UIImageResizingMode.Stretch)
view.addSubview(imageView2)
let imageView3 = UIImageView.init(frame: CGRectMake(50, 200, 264, 33))
imageView3.image = UIImage.init(named: "kaopu_back")?.resizableImageWithCapInsets(UIEdgeInsetsMake(4, 16, 4, 9), resizingMode: UIImageResizingMode.Tile)
view.addSubview(imageView3)
不同效果
网友评论