我使用“CoreGraphics”作为NR4TR的建议,最终解决了这个问题。
我创建了一个新的UIView并重写了drawRect函数。
这是结果代码:
- (void)drawRect:(CGRect)rect {
float radius = 10.0f;
CGContextRef context = UIGraphicsGetCurrentContext();
rect = CGRectInset(rect, 0.0f, 0.0f);
CGContextBeginPath(context);
CGContextMoveToPoint(context, CGRectGetMinX(rect) + radius, CGRectGetMinY(rect));
CGContextAddLineToPoint(context, CGRectGetMaxX(rect), CGRectGetMinY(rect));
if (bottom)
{
CGContextAddArc(context, CGRectGetMinX(rect) + radius, CGRectGetMaxY(rect) - radius, radius, M_PI/2, M_PI, 0);
}
else {
CGContextAddLineToPoint(context, CGRectGetMaxX(rect), CGRectGetMaxY(rect));
}
CGContextAddLineToPoint(context, CGRectGetMinX(rect), CGRectGetMaxY(rect));
if (top)
{
CGContextAddArc(context, CGRectGetMinX(rect) + radius, CGRectGetMinY(rect) + radius, radius, M_PI, 3 * M_PI/2, 0);
}
else {
CGContextAddLineToPoint(context, CGRectGetMinX(rect), CGRectGetMinY(rect));
}
CGContextSetFillColorWithColor(context, theColor.CGColor);
CGContextClosePath(context);
CGContextFillPath(context);
}
你最好的解决方案更好地加入到与标签_Solution_比邮寄回答自己的问题你的答案。只是一个stackoverflow的问题:) – knuku 2011-02-25 11:52:26