我正在制作一个应用程序,在其中使用UIEdgeInsetsMake
为resizableImageWithCapInsets
创建可调整大小的图像,但我不确定它如何确切地工作,UIEdgeInsetsMake
有四个参数:
- 上方
- 左侧
- 下方
- 右侧
但它们是浮点数,所以我不知道如何将其设置为图像,谢谢!:D
我正在制作一个应用程序,在其中使用UIEdgeInsetsMake
为resizableImageWithCapInsets
创建可调整大小的图像,但我不确定它如何确切地工作,UIEdgeInsetsMake
有四个参数:
但它们是浮点数,所以我不知道如何将其设置为图像,谢谢!:D
UIEdgeInsetsMake
函数的值中使用您想要使其不可拉伸的像素数量即可。 UIEdgeInsetsMake(0,10,0,10)
。 stretchableImageWithLeftCapWidth:topCapHeight:
。
[编辑] 一些提示 我已经使用了一段时间,因为我从来不记得UIEdgeInsets
结构的字段顺序,以及我们应该按照什么顺序传递参数给UIEdgeInsetsMake
函数,我更喜欢使用指定初始化语法,像这样:
UIEdgeInsets insets = { .left = 50, .right = 50, .top = 10, .bottom = 10 };
或者当需要显式转换时:
UIImage* rzImg = [image resizableImageWithCapInsets:(UIEdgeInsets){
.left = 50, .right = 50,
.top = 10, .bottom = 10
}];
我认为这样更易读,特别是为了确保我们不混淆不同的边框/方向!
UIEdgeInsetsMake
也使用点而不是像素。而且已经过时的stretchableImageWithLeftCapWidth:topCapHeight:
也使用点。因此,可拉伸部分的宽度为1个点,这与@2x
图像的2个像素匹配(其中1pt = 2px)。 - AliSoftwareUIImageResizingMode
来拉伸或平铺子图像。我建议为了获得最佳性能,在视网膜和非视网膜显示屏上将可伸缩区域设为1x1像素(而不是点)。因此,例如对于 UIEdgeInsetsMake(10,10,10,10)
,请使用21x21 @1x和41x41 @2x。 - jhabbott但它们是浮点数,所以我不知道如何将其设置为图像
这是一个UIImage实例方法。因此,使用resizableImageWithCapInsets
创建一张图片的方式是首先向一个图片(UIImage)发送该消息。
酷炫的新功能:请注意,如果边缘插图都是零,则图片将被平铺。这可以作为任何接受背景图片的东西的背景。它甚至在UIImageView中也可以使用。
view.backgroundColor = [UIColor colorWithPatternImage:image]
,这是相当容易理解的。否则,如果您使用了平铺技巧,我建议添加注释,例如// tiles image
。 - ma11hew28