ios - 在 Objective-C 的 UIImage 的透明区域上屏蔽背景颜色

标签 ios objective-c uiimageview uiimage image-masking

我对如何解决这个问题有点迷茫,我真的在寻找它背后的理论,我不能 100% 确定标题是否正确。

我目前正在开发一个 iOS 应用程序,我有点坚持设计的进度指示器,我在下面附上了它的图片

enter image description here

正如您所看到的,当用户在挑战的各个阶段取得进展时,此图像的背景会填充白色,因此如果他们处于 5 阶段挑战的第 1 阶段,则其填充 20% 第 2 阶段 40% 等。

我遇到的问题是我不是 100% 确定如何解决这个问题,如果我在 HTML 中这样做,我会创建具有绿色背景的图像并为兔子和形状保留透明区域,然后创建一个 div在它后面会改变它的高度。

我应该将相同的原则应用到 iOS 开发中,还是应该以更具程序性和效率的方式构建它。

谢谢大家的帮助

最佳答案

您所说的解决方案听起来不错。许多程序化解决方案会涉及 mask 并且可能性能较低( mask 实际上非常昂贵),其他程序化解决方案涉及抚摸不同的矢量路径,但如果您想将它们全部切割成一条线,这会变得复杂。

因此,将您的想法转化为观点。创建一个具有浅绿色背景的容器 UIView,并向其添加一个白色 UIView 和一个 UIImageView(按此顺序使图像位于顶部)。 ImageView 会将带有透明度的绿色图像设置为其 image。白色 View 将开始位于浅绿色 View 下方(具有更高 y 值的框架),并且随着阶段的进行,您只需通过修改它的 center 向上移动白色 View 框架属性。 (注意 y 向下增加)。

关于ios - 在 Objective-C 的 UIImage 的透明区域上屏蔽背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21327924/

相关文章:

android - 如何在 .NET 上序列化和在 WP、Win8、iOS 和 Android 上反序列化并保留引用

objective-c - 将 NSInteger 转换为 float ,反之亦然

iphone - 如何在 UIView 中添加带坐标的图像?

ios - 如何更改多个按钮图像和条件

objective-c - 动画多个 Sprite Cocos2d

iphone - 检测两个图像之间的像素碰撞/重叠

ios - Error Domain=NSURLErrorDomain Code=-1003 “找不到具有指定主机名的服务器

ios - 在哪个线程上 [SKScene 更新 :] get called?

ios - 通过保持父 View 静态来通过圆形路径移动对象 (UIButton)

iphone - 单击按钮锁定 iPad 方向