切入圆孔Swift的边界

时间:2015-10-15 04:24:43

标签: ios swift

Minimal, Complete, and Verifiable example我想在切口中添加边框(中间透明,外部半透明)。我正在使用PartialTransparentMaskView。

  mapView.clipsToBounds = false

    let frame = mapView.frame

    // Add the mask view
    var array = [CGRect]()
    //to change the circle customize next line
    let rect = CGRectMake(frame.origin.x+20,100, frame.width-40, frame.height-300)

    array.append(rect)

    let maskColor = UIColor(red: 0.9, green: 0.5, blue: 0.9, alpha: 0.5)
    let parentView = mapView.superview
    let pFrame = parentView!.frame
    let maskView = PartialTransparentMaskView(frame: CGRectMake(0, 0, pFrame.width, pFrame.height), backgroundColor: maskColor, transparentRects: nil, transparentCircles:array, targetView: mapView)
    parentView!.insertSubview(maskView, aboveSubview: mapView)

守则看起来像这样

i

如何在圆圈周围添加红色边界?

3 个答案:

答案 0 :(得分:0)

在maskView上方添加一个UIView,其框架方块等于圆的半径,以圆心为中心。

给出circleRadius,让circleCentre成为你的值

#notification-body{
  font-size:12px;
  padding: 5px 10px 5px 5px;
  white-space: nowrap;
}

#notification-panel{
  margin-bottom:5px;
  word-wrap: break-word;
}

#notification-info{
  margin: 0px;
  white-space: normal;
}

作为示例值,如果没有什么时髦的话,这应该有用,并且视图只是顶部的视图。

答案 1 :(得分:0)

maskView只是一种观点。它甚至不是真正的面具;它只是一个带有透明度的视图。因此,将红色边界绘制到视图中,就像在视图中绘制任何内容一样。

答案 2 :(得分:0)

所以,我检查了PartialTransparentMaskView文件,我看到了添加圆圈的代码。我添加了这些线来绘制边界:

    CGContextSetStrokeColorWithColor(context, UIColor.redColor().CGColor);
            CGContextSetAlpha(context,2);
            CGContextStrokeEllipseInRect(context, holeRectIntersection);

代码部分如下所示:

      if let circles = transparentCircles {
        for aRect in circles {

            let holeRectIntersection = aRect

            let context = UIGraphicsGetCurrentContext();

            if( CGRectIntersectsRect( holeRectIntersection, rect ) )
            {
                CGContextAddEllipseInRect(context, holeRectIntersection);
                CGContextClip(context);
                CGContextClearRect(context, holeRectIntersection);
                CGContextSetFillColorWithColor( context, UIColor.clearColor().CGColor)
                CGContextFillRect( context, holeRectIntersection);
                CGContextSetStrokeColorWithColor(context, UIColor.redColor().CGColor);
                CGContextSetAlpha(context,2);
                CGContextStrokeEllipseInRect(context, holeRectIntersection);
            }


}
        }