UIImageView 在边框上拉伸/重复图像并保持其质量
Posted
技术标签:
【中文标题】UIImageView 在边框上拉伸/重复图像并保持其质量【英文标题】:UIImageView stretch/repeat image on borders and maintain its quality 【发布时间】:2016-11-20 11:23:44 【问题描述】:我有一个平方UIImage
我正在尝试使用此UIImage
为任何给定的矩形创建一个UIImageView
,我将使用它作为顶部另一个视图的边框。
我不想手动设置layer
的边框,但我想使用这张图片。
所需输出示例:
我尝试使用UIView
的UIViewContentModeScaleToFill
UIImageView *imageView1 = [[UIImageView alloc] initWithFrame:CGRectMake(5, 5, 300, 150)];
[imageView setImage:[UIImage imageNamed:@"background"]];
[imageView setContentMode:UIViewContentModeScaleToFill];
但是图像正在拉伸并且没有返回所需的输出
示例输出:
【问题讨论】:
为什么要使用图片来创建边框。以编程方式创建边框并为其赋予颜色等。任何你想要的。 我无法通过更改视图的图层来实现完全相同的图像边框和阴影。 在您的UIImage
上使用resizableImageWithCapInsets:
或resizableImageWithCapInsets:resizingMode:
。看看那里的“定义可拉伸图像”部分:developer.apple.com/reference/uikit/…
@Larme 这正是我想要的,谢谢!请添加答案,以便我接受。
@iDev 试试下面的方法。
【参考方案1】:
您可以通过编程方式创建带有阴影效果的边框:
[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 界面来做,你可以这样做
-
将方形图像拖放到资产中
选择图像并点击“显示属性检查器”
在切片部分为切片选择“水平和垂直”
现在随心所欲地使用它,您将获得没有任何失真的拉伸图像
您可以点击底部的“显示切片”查看图像切片视图
您也可以使用编程方式进行操作
resizableImageWithCapInsets:resizingMode:
【讨论】:
谢谢,我认为值得一提的是,它可以使用resizableImageWithCapInsets:
以编程方式完成。以上是关于UIImageView 在边框上拉伸/重复图像并保持其质量的主要内容,如果未能解决你的问题,请参考以下文章