search

Home  >  Q&A  >  body text

ios - 在image上切一个透明的圆

结构层次:UIView->UIImageView->UIImage,即把带有图片的imageview添加到UIView上,现在要在图片上 切一个透明的圆

PHPzPHPz2890 days ago268

reply all(3)I'll reply

  • 迷茫

    迷茫2017-04-18 09:05:31

    Refer to the following code:

    - (void)addShadowView {
        self.hollowFrames = @[[NSValue valueWithCGPoint:CGPointMake(20.0, 20.0)], [NSValue valueWithCGPoint:CGPointMake(120.0, 20.0)]];
    
        int radius = 15.0;
        UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height) cornerRadius:0];
    
        for (NSValue *point in self.hollowFrames) {
            UIBezierPath *circlePath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(point.CGPointValue.x, point.CGPointValue.y, 2.0*radius, 2.0*radius) cornerRadius:radius];
            [path appendPath:circlePath];
        }
    
        [path setUsesEvenOddFillRule:YES];
    
        CAShapeLayer *fillLayer = [CAShapeLayer layer];
        fillLayer.path = path.CGPath;
        fillLayer.fillRule = kCAFillRuleEvenOdd;
        fillLayer.fillColor = [UIColor blackColor].CGColor;
        fillLayer.opacity = 0.5;
        [self.layer addSublayer:fillLayer];
    }
    

    refs: http://stackoverflow.com/a/18925731/4733603

    reply
    0
  • PHP中文网

    PHP中文网2017-04-18 09:05:31

    Use the PS Pen Tool to outline it, or use the Magic Selection Tool to select and delete the white part.

    reply
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:05:31

    If it’s a web page: The border-radius attribute of CSS can give you some inspiration.

    <html>
    <head>
     <style>
       .box{
         width:50px;
         height:50px;
         border-radius:50%;
         overflow:hidden;
       }
     </style>
    </head>
    <body>
     <p class="box">
       <img src="./images/1.jpg" />
     </p>
    </body>
    </html>

    reply
    0
  • Cancelreply