我有一个包含圆圈图像的UIImageView。我希望能够删除图像的一部分(同时保持透明度)以创建缺失切片的效果,如下所示。我的最终目标是创建类似于iTunes应用程序的东西,当您播放歌曲预览时,圆圈会以顺时针方向缓慢填充。
答案 0 :(得分:5)
如果除了进度显示之外不需要圆圈图像,则可以跳过UIImageView
并使用CoreGraphics绘制进度指示器。基本步骤是:
CGContextBeginPath
CGContextAddArc
CGContextFillPath
CGContextClosePath
对每个进度步骤重复此步骤,每次更改弧的终点。
答案 1 :(得分:2)
我使用以下代码实现了类似的填充循环: (委托提供0到1之间的值)
- (void)drawRect:(CGRect)rect
{
CGFloat endAngle=([self.delegate giveCompletion]+0.75)*2*M_PI;
UIBezierPath *path=[UIBezierPath bezierPathWithArcCenter:self.center radius:self.bounds.size.width/(3) startAngle:0.75*2*M_PI endAngle:endAngle clockwise:YES];
[path addLineToPoint:self.center];
[path addLineToPoint:CGPointMake(self.center.x, self.center.y+self.bounds.size.width/(3)) ];
[path addClip];
[[UIColor blueColor]setFill];
UIRectFill(self.bounds);
}
我还没弄清楚如何动态地填充它,虽然我想这很大程度上取决于使用它的特定环境。希望它有任何帮助!欢呼声。