2011-08-03 57 views
1

我有一個包含圓形圖像的UIImageView。我希望能夠刪除圖像的一部分(同時保持透明度),以創建如下所示的切片缺失的效果。我的最終目標是創建類似iTunes的應用程序,當您播放歌曲預覽時,該圓圈會順時針方向緩慢填充。將UIImageView切成自定義形狀

Pie Shape

回答

5

如果您不需要圓比進度顯示任何其他的形象,你可以跳過UIImageView,只需使用CoreGraphics中繪製進度指示器。基本步驟是:

  1. 創建路徑 - CGContextBeginPath
  2. 添加使用CGContextAddArc
  3. 填寫使用CGContextFillPath
  4. 關閉路徑的路徑弧 - CGContextClosePath

重複此每個進展步驟,每次更改弧的終點。

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); 
} 

我還沒有想出如何動態地使其填滿雖然我猜這將在很大程度上取決於它使用的具體環境。希望它有任何幫助!乾杯。

+0

非常棒的這段代碼很棒!順便說一句[self setNeedsDisplay]將導致視圖重繪。 – AlBeebe