5

我想做这样的事情 选项图片

如何在 UILabel 中绘制一个与此图像相似的圆圈,我只是想避免使用图像。

4

2 回答 2

11

我建议向 UILabel 添加一个形状图层。像这样的东西:

// Create the shape layer

CAShapeLayer *circleLayer = [CAShapeLayer layer];
circleLayer.path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, 50, 50)].CGPath;
circleLayer.fillColor = [UIColor clearColor].CGColor;
circleLayer.strokeColor = [UIColor whiteColor].CGColor;
circleLayer.lineWidth = 1;

// Add it do your label's layer hierarchy

[label.layer addSublayer:circleLayer];

这将使您能够最大程度地控制其外观和 A 字体的外观。

更新:

我突然想到,为了在它周围放一个圆圈,你很难让“A”垂直偏移。有一些技巧可以在 UILabel 中获得垂直居中,但是使用 UITextField 会更好,因为它支持 contentVerticalAlignment 属性。您只需将其 userInteractionEnabled 设置为 NO 以防止用户在其上输入文本!

除此之外,添加 CAShapeLayer 的原理是一样的。

于 2013-10-18T07:11:15.050 回答
5

您可以通过@maddy 建议的方式来实现这一点,或者UILabel使用方形矩形创建,将文本对齐到中间并使用标签的图层cornerRadiuswith borderWidth。只需设置cornerRadius为标签的一半宽度(或高度)。祝你好运!

于 2013-10-18T07:06:20.500 回答