如何创建非矩形UIImageView

时间:2015-04-11 19:21:38

标签: ios objective-c uiimageview uiimage quartz-graphics

我正在尝试制作一个ViewController来显示来自这样的网页的信息:

http://i.stack.imgur.com/TH6iV.jpg

然而,我对一件事感到困惑。他们是如何让imageView显示在角落处切断的图像,即不是矩形?你认为他们在Photoshop中创建了这个播放器卡并将其用作imageView图像的背景,还是以编程方式创建它?

我想知道因为图像在熊的图片后面,所以我想如果他们在Photoshop中创建了背景,他们将如何获得熊头后面的图像?他们不能只用玩家的图片作为其中一部分创建卡片,然后加载整个图像,因为如果他们交易玩家,因为我确定他们从网络上提取玩家信息和图片以便他们可以拥有所有玩家的牌,即使他们在赛季中交易或获得新玩家,也无需更新应用(并将完成的图像添加到images.xcassets)。

2 个答案:

答案 0 :(得分:2)

这可以在运行时由两个CALayers组成。将图片放在底层;图片可以来自任何地方 - 网络,捆绑等,图像源可以是动态的。

将另一个CALayer置于顶部,框架使用不透明的颜色渲染,中间的图片采用透明切口:

Layers

答案 1 :(得分:0)

有很多方法可以做到这一点。一种简单而灵活的方法是创建一个与图像视图大小相同的CAShapeLayer,它的原点为0,0,并将其添加为UIImageView的图层&# 39; s面具。

您需要创建一个填充的UIBezierPath,用于映射您要显示的图像部分,并将bezier路径的CGPath安装到遮罩层的路径属性中。

结果将是裁剪图像视图,以便仅绘制形状内的部分。

相关问题