画圆角框

时间:2010-09-17 14:12:45

标签: iphone google-maps ios4 drawing mapkit

在我的应用程序中我有一张地图,这张地图有很多注释......但有时没有找到注释的位置(服务器找不到lat / lon)。当发生这种情况时,我想在地图上画一个小方框,上面写着“找不到某些位置”(或类似)。我希望这个盒子有圆角并且是透明的。此外,如果可能,我希望如果这不影响地图的功能。我的意思是,如果用户从该框所在的地图上绘制手指,地图仍应移动。

我怎样才能制作这样的盒子?

这就是我的意思:
alt text

最好的问候,
保罗佩伦

2 个答案:

答案 0 :(得分:2)

要么使用Photoshop :),要么使用CALayer。

要使用图层创建一个名为bgView的UIView,并为您的背景创建适当的Alpha值,然后在要显示警报面板的方法中执行此操作: -

CALayer *layer = bgView.layer;
layer.masksToBounds = YES;
layer.cornerRadius = 20.0; // adjust for corner effect

答案 1 :(得分:1)

有一些演示代码:http://www.eng.utah.edu/~cs4962/programming.html

在颜色选择器的解决方案中。 (在上半部分)


+ (void) addRoundedRect:(CGRect)rect radiusPercent:(float)radiusPercent
{
    CGContextRef context = UIGraphicsGetCurrentContext();

CGFloat radius = fminf(rect.size.width, rect.size.height) * radiusPercent; CGFloat minX = CGRectGetMinX(rect); CGFloat midX = CGRectGetMidX(rect); CGFloat maxX = CGRectGetMaxX(rect); CGFloat minY = CGRectGetMinY(rect); CGFloat midY = CGRectGetMidY(rect); CGFloat maxY = CGRectGetMaxY(rect); CGContextMoveToPoint(context, minX, midY); CGContextAddArcToPoint(context, minX, minY, midX, minY, radius); CGContextAddArcToPoint(context, maxX, minY, maxX, midY, radius); CGContextAddArcToPoint(context, maxX, maxY, midX, maxY, radius); CGContextAddArcToPoint(context, minX, maxY, minX, midY, radius); CGContextClosePath(context);
CGFloat radius = fminf(rect.size.width, rect.size.height) * radiusPercent; CGFloat minX = CGRectGetMinX(rect); CGFloat midX = CGRectGetMidX(rect); CGFloat maxX = CGRectGetMaxX(rect); CGFloat minY = CGRectGetMinY(rect); CGFloat midY = CGRectGetMidY(rect); CGFloat maxY = CGRectGetMaxY(rect); CGContextMoveToPoint(context, minX, midY); CGContextAddArcToPoint(context, minX, minY, midX, minY, radius); CGContextAddArcToPoint(context, maxX, minY, maxX, midY, radius); CGContextAddArcToPoint(context, maxX, maxY, midX, maxY, radius); CGContextAddArcToPoint(context, minX, maxY, minX, midY, radius); CGContextClosePath(context);

}