2011-09-24 54 views
0

我有一個黑白圖片,用UIImageView顯示PNG格式。這是一個沒有把手的時鐘形狀。所以背景是白色的 - 圓圈是黑色的。 然後,我想畫上幾個小時和分鐘的手柄,我很努力如何做到這一點,雖然我不遠處,我不能使它的工作...在UIImageView的頂部繪製線條,它已經有一個圖像

當我畫手柄我最後得到一個大的黑色方塊(所以我無法透過它看到它背後的png),至少我看到了我的2個手柄(我想要藍色)。我想我們的目標是使該大黑方是白色/透明的,所以它應該工作...

我的代碼是這樣的下面:

- (void)drawRect:(CGRect)rect 
{ 
...... 

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextClearRect(context, rect); 
CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor); 
CGContextSetRGBStrokeColor(context, 0.0, 0.0, 1.0, 1.0);  
[self drawLineForContext:context Width:10.0 angle:hAlpha length:self.frame.size.width/2.0 - 40]; 
[self drawLineForContext:context Width:5.0 angle:mAlpha length:self.frame.size.width/2.0 - 12]; 
} 

那你覺得我失蹤?

有關信息,設置圖像,我只是那樣做,我想這是正確的,因爲它的工作原理...

UIImage *image = [UIImage imageNamed: [md objectForKey:Q_DIRECTION_PIC]]; 
[ivDirectionPic setImage: image]; 
ivDirectionPic.backgroundColor=[UIColor clearColor]; 
ivDirectionPic.contentMode = UIViewContentModeScaleAspectFit; 

感謝您的幫助!

乾杯, geebee

EDIT1:我加入的UIColor clearColor,但它仍然是相同的......我不知道如何添加其他子類有相同的幀您的評論:如何請?哪裏?

我也加你問我張貼的額外功能:

- (void) drawLineForContext:(const CGContextRef)context Width:(float)_width angle:(double)_angle length:(double)radius 
{ 
CGPoint c = CGPointMake(self.frame.size.width/2.0, self.frame.size.height/2.0); 

CGContextSetLineWidth(context, _width); 
CGContextMoveToPoint(context, self.center.x, self.center.y); 
CGPoint addLines[] = 
{ 
    CGPointMake(self.frame.size.width/2.0, self.frame.size.height/2.0), 
    CGPointMake(radius*cos(_angle) +c.x, radius*sin(_angle) +c.y), 
}; 

CGContextAddLines(context, addLines, sizeof(addLines)/sizeof(addLines[0])); 
CGContextStrokePath(context); 
} 

回答

0

UIImageView需要有其backgroundColor設置爲[UIColor clearColor]

如果這不起作用,只需在圖像視圖頂部添加另一個子類UIView與同一幀。

您錯誤的另一個來源可能是您沒有發佈任何代碼的drawLineForContext方法。

+0

thx Mundi。我添加了clearcolor,但沒有改變黑色的大框架 - 你會看到它現在在代碼中。正如我上面寫的,我不明白你的第二句話。我如何添加這個子類,並在哪裏?我還添加了額外的代碼。感謝您的幫助提前 – geebee

+0

重寫「drawRect」你需要「子類」。我的意思是在圖像視圖的頂部添加**另一個**視圖並在那裏進行繪製。這將幫助你隔離問題。 – Mundi

+0

我應該添加哪個視圖?以及如何在頂部? – geebee