UIImageView侧面和顶部圆形边框

时间:2014-05-08 12:22:20

标签: ios objective-c uiimageview uiimage

大家好我需要在这些UIImageView周围实现边界。

左,上,右边界像半月形

http://imageshack.com/a/img841/3269/o90p.png

我该怎么做?

3 个答案:

答案 0 :(得分:0)

你需要:

  1. 创建CAShapeLayer
  2. 根据CGPathRef将其路径设置为view.bounds,但只有两个圆角(可能使用[UIBezierPath bezierPathWithRoundedRect:byRoundingCorners:cornerRadii:]
  3. 将view.layer.mask设置为CAShapeLayer
  4. 请注意,这会对性能产生不良影响。 This might help

答案 1 :(得分:0)

您可以使用CALayer用户。

CALayer *l = [_btn layer];
[l setMasksToBounds:YES];
[l setCornerRadius:8.0];

并添加QuartzCore.framework

答案 2 :(得分:0)

您可能希望继承UIView并覆盖drawRect:方法。然后将地图添加为子视图。您的drawRect:方法看起来像这样(clipsToBounds设置为YES):

- (void)drawRect:(CGRect)rect
{
    UIColor *fillColor = [UIColor clearColor];
    UIColor *borderColor = [UIColor redColor];
    float borderWidth = 2.0f;

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, fillColor.CGColor);
    CGContextSetLineWidth(context, borderWidth);
    CGContextSetStrokeColorWithColor(context, borderColor.CGColor);

    CGContextMoveToPoint(context, CGRectGetMinX(rect), CGRectGetMidY(rect));
    CGContextAddArc(context, CGRectGetMidX(rect), CGRectGetMidY(rect), rect.size.height/2, 2*M_PI, M_PI, 1);
    CGContextClosePath(context);
    CGContextDrawPath(context, kCGPathFillStroke);
}

或者,您可以查看使用半圆图像进行遮罩或为图像视图创建CAShapeLayer