我有一個黑白圖片,用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);
}
thx Mundi。我添加了clearcolor,但沒有改變黑色的大框架 - 你會看到它現在在代碼中。正如我上面寫的,我不明白你的第二句話。我如何添加這個子類,並在哪裏?我還添加了額外的代碼。感謝您的幫助提前 – geebee
重寫「drawRect」你需要「子類」。我的意思是在圖像視圖的頂部添加**另一個**視圖並在那裏進行繪製。這將幫助你隔離問題。 – Mundi
我應該添加哪個視圖?以及如何在頂部? – geebee