Swift 进度指示器图像遮罩
Swift Progress Indicator Image Mask
首先,此项目是使用 Swift 构建的。
我想创建一个自定义进度指示器,在脚本运行时 "fills up"。该脚本将调用从远程服务器提取的 JSON 提要。
为了更好地形象化我所追求的,我做了这个:
我的猜测是有两个 PNG 图片;一白一红,然后简单的根据进度做一些masking。
对此有什么想法吗?
掩码对此可能有点矫枉过正。每次都重新绘制图像。当你这样做时,你绘制红色矩形来填充图形的下半部分,到你想要的任何高度;然后绘制液滴图像(PNG),它在中间具有透明度,因此红色矩形会显示出来。因此,一个 PNG 就足够了,因为每次重绘时都可以绘制红色矩形 "live"。
我非常喜欢你的画,所以我想把它变成现实,所以这是我的工作代码(我的 PNG 名为 tear.png 和 iv
在我的界面中是一个 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 并调用该方法,这样来回移动滑块会在泪珠中上下移动红色填充。我可以玩几个小时!
首先,此项目是使用 Swift 构建的。
我想创建一个自定义进度指示器,在脚本运行时 "fills up"。该脚本将调用从远程服务器提取的 JSON 提要。
为了更好地形象化我所追求的,我做了这个:
我的猜测是有两个 PNG 图片;一白一红,然后简单的根据进度做一些masking。
对此有什么想法吗?
掩码对此可能有点矫枉过正。每次都重新绘制图像。当你这样做时,你绘制红色矩形来填充图形的下半部分,到你想要的任何高度;然后绘制液滴图像(PNG),它在中间具有透明度,因此红色矩形会显示出来。因此,一个 PNG 就足够了,因为每次重绘时都可以绘制红色矩形 "live"。
我非常喜欢你的画,所以我想把它变成现实,所以这是我的工作代码(我的 PNG 名为 tear.png 和 iv
在我的界面中是一个 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 并调用该方法,这样来回移动滑块会在泪珠中上下移动红色填充。我可以玩几个小时!