2
我想在圓形視圖後面添加陰影,但我的嘗試導致我在視圖的邊框上僅顯示一個陰影,並且此陰影不會在視圖周圍出現(只是頂部)。這裏是我的代碼:將陰影添加到圓形視圖
-(void)drawRect:(CGRect)dirtyRect{
CGContextRef ctx=UIGraphicsGetCurrentContext();
CGRect bounds=[self bounds];
// Figure out the centre of the bounds rectangle
CGPoint centre;
centre.x=bounds.origin.x+0.5*bounds.size.width;
centre.y=bounds.origin.y+0.5*bounds.size.height;
// Clip context
CGPathRef path = CGPathCreateWithEllipseInRect(bounds, NULL);
CGContextAddPath(ctx, path);
CGContextClip(ctx);
// Add black outline
path = CGPathCreateWithEllipseInRect(bounds, NULL);
CGContextAddPath(ctx, path);
[[UIColor blackColor] setStroke];
CGContextSetLineWidth(ctx, 3.0);
// Specify shadow
CGSize offset=CGSizeMake(1,4);
CGColorRef colour=[[UIColor darkGrayColor] CGColor];
CGContextSetShadowWithColor(ctx, offset, 2, colour);
// Draw image
UIImage *littleImage=[UIImage imageNamed:@"image.png"];
[littleImage drawInRect:bounds];
CGContextStrokePath(ctx);
}
感謝您的閱讀。
感謝您的答覆。這可以解釋爲什麼陰影不會四處走動,但是陰影出現在視圖內部的問題(就像視圖是透明的並且顯示背後的陰影)仍然會存在......對此有任何想法? – Rogare
我認爲它的行爲正確,因爲你沒有填充橢圓。它顯示線條的陰影。如果用純色填充路徑,則不會看到它。 –