2016-11-20 52 views
1

我有一个平方UIImage的UIImageView伸展/重复图像,并保持其质量

enter image description here

我试图用这个UIImage对于任何给定的矩形,我将使用作为创建UIImageView一个边框到另一个视图的顶部。

我不想手动设置layer的边框,但我想使用此图像。期望的输出的

实施例:

enter image description here

我尝试使用UIViewUIViewContentModeScaleToFill

UIImageView *imageView1 = [[UIImageView alloc] initWithFrame:CGRectMake(5, 5, 300, 150)]; 
[imageView setImage:[UIImage imageNamed:@"background"]]; 
[imageView setContentMode:UIViewContentModeScaleToFill]; 

但图像被拉伸和未返回期望的输出

例输出:

enter image description here

+0

为什么使用图像创建镶边。以编程方式创建边框并赋予它颜色等等。你想要什么。 –

+0

我无法通过更改视图的图层来实现图像的完全相同的边框和阴影。 – iDev

+1

在'UIImage'上使用'resizableImageWithCapInsets:'或'resizableImageWithCapInsets:resizingMode:'。看看“定义可伸缩图像”部分:https://developer.apple.com/reference/uikit/uiimage?language=objc#symbols – Larme

回答

3

编程可以用阴影效果创建边界:

[view.layer setCornerRadius:5]; 
[view.layer setShadowColor:[UIColor lightGrayColor].CGColor]; 
[view.layer setShadowOpacity:0.4]; 
[view.layer setShadowRadius:1.0]; 
[view.layer setShadowOffset:CGSizeMake(1.0, 1.0)]; 

但如果你想要做的使用Xcode的界面,你可以做到这一点作为

  1. 将&拖放到资产中图像&单击“显示属性检查器”
  2. 在切片部分选择“水平和垂直”为片

现在,只要你想,你将有拉伸图像而没有任何失真

enter image description here

使用它

您可以在底部

enter image description here

上点击“显示切片”查看图像切片视图

你也可以做到这一点编程方式使用

resizableImageWithCapInsets:resizingMode:

+0

谢谢,我认为值得一提的是,它可以使用'resizableImageWithCapInsets:'以编程方式完成。 – iDev