ios - Swift 进度指示器图像 mask

标签 ios swift mask progress

首先,这个项目是使用 Swift 构建的。

我想创建一个自定义进度指示器,在脚本运行时“填满”。该脚本将调用从远程服务器中提取的 JSON 提要。

为了更好地形象化我所追求的,我做了这个:

enter image description here

我的猜测是有两个 PNG 图像;一白一红,然后简单地根据进度做一些掩蔽。

对此有什么想法吗?

最佳答案

为此,掩蔽可能有点矫枉过正。每次都重新绘制图像。当你这样做时,你绘制红色矩形来填充图形的下半部分,到你想要的任何高度;然后绘制液滴图像(PNG),它在中间具有透明度,因此红色矩形会显示出来。因此,一个 PNG 就足够了,因为每次重绘时都可以“实时”绘制红色矩形。

我非常喜欢你的画,所以我想把它变成现实,所以这是我的工作代码(我的 PNG 名为 tear.pngiv 是一个 UIImageView在我的界面中;percent 应该是一个介于 0 和 1 之间的 CGFloat:

func redraw(percent:CGFloat) {
    let tear : UIImage! = UIImage(named:"tear")!
    if tear == nil {return}
    let sz = tear.size
    let top = sz.height*(1-percent)
    UIGraphicsBeginImageContextWithOptions(sz, false, 0)
    let con = UIGraphicsGetCurrentContext()
    UIColor.redColor().setFill()
    CGContextFillRect(con, CGRectMake(0,top,sz.width,sz.height))
    tear.drawAtPoint(CGPointMake(0,0))
    self.iv.image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
}

我还连接了一个 UISlider,它的操作方法将其 value 转换为 CGFloat 并调用该方法,这样来回移动 slider 会在泪珠中上下移动红色填充。我可以玩几个小时!

enter image description here

关于ios - Swift 进度指示器图像 mask ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27882542/

相关文章:

ios - UIImage 数组没有出现在 ios 模拟器中

Android Bitmap/Drawable mask

ios - iOS 中 UIImageView 的动画圆形 mask

python - 使用 OpenCV 校正蒙版中形状的边缘

iphone - iOS核心位置框架在iOS 4.2模拟器上无法正常工作

与 iCloud 连接的 iOS 应用程序崩溃

ios - 如何在 UIScrollView 上添加 UIViewController View

ios - UIButton 在 iOS7 中点击时不显示突出显示 - Swift

ios - 具有文本格式的多行 TableView 单元格

ios - 相机在启动情绪检测器时卡住