如何创建带有中心孔的圆角的uiview?

时间:2016-05-11 12:54:01

标签: ios objective-c iphone

如何使用具有中心孔的圆角创建uiview,这意味着只有一个中心空白的圆圈?

5 个答案:

答案 0 :(得分:1)

你需要的是椭圆形矩形的bezier路径。

UIBezierPath* ovalPath = [UIBezierPath bezierPathWithOvalInRect: CGRectMake(67, 18, 50, 50)];
[UIColor.grayColor setStroke];
ovalPath.lineWidth = 1.5;
[ovalPath stroke];

您可以增加线宽以使中心孔更小。

对于线宽25:

enter image description here

对于行宽1.5:

enter image description here

如果你想在直肠视图中打洞:

- (void)drawFrame: (CGRect)frame
{

    UIBezierPath* rectanglePath = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(CGRectGetMinX(frame) + 13, CGRectGetMinY(frame) + 13, 50, 50) cornerRadius: 8];
    [UIColor.darkGrayColor setStroke];
    rectanglePath.lineWidth = 8;
    [rectanglePath stroke];

    UIBezierPath* ovalPath = [UIBezierPath bezierPathWithOvalInRect: CGRectMake(CGRectGetMinX(frame) + 25, CGRectGetMinY(frame) + 25, 26, 26)];
    [UIColor.darkGrayColor setStroke];
    ovalPath.lineWidth = 31;
    [ovalPath stroke];
}

enter image description here

答案 1 :(得分:0)

老实说,我不确定你想要什么。 既然如此,你提到了UIView,所以这可能有所帮助。

$decoded = base64_decode($base64StringImg);
header("Content-type: image/GIF");
return'<img src="data:image/GIF;base64,"'.$decoded.'" />';

答案 2 :(得分:0)

你可以掩饰你的UIView以实现任意形状。我给出了一个考试如何制作一个有洞的圆圈。

UIView * redRing = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
redRing.backgroundColor = [UIColor redColor];
CGPoint center = CGPointMake(100, 100);
CGFloat R = 100; //circle radius
CGFloat r = 50; //hole radius
UIBezierPath* maskPath = [UIBezierPath bezierPathWithArcCenter:center radius:R startAngle:0 endAngle:2*M_PI clockwise:YES];
[maskPath appendPath:[UIBezierPath bezierPathWithArcCenter:center radius:r startAngle:0 endAngle:2*M_PI clockwise:NO]];
CAShapeLayer* mask = [[CAShapeLayer alloc] init];
[mask setPath:maskPath.CGPath];
redRing.layer.mask = mask;

答案 3 :(得分:-1)

使用UIImageView而不是UIView,使用中心transperent设置正确的图像到ImageView,根据您的要求设计的图像并为UIImageview设置背景颜色clearclor

答案 4 :(得分:-1)

请详细解释一下或发布任何参考图片,因为使用UIView是不可能的。

对于您的解决方案,您可以制作一个这样的图像(UIImageView)。