我想做这样的事情
如何在 UILabel 中绘制一个与此图像相似的圆圈,我只是想避免使用图像。
我建议向 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 的原理是一样的。
您可以通过@maddy 建议的方式来实现这一点,或者UILabel
使用方形矩形创建,将文本对齐到中间并使用标签的图层cornerRadius
with borderWidth
。只需设置cornerRadius
为标签的一半宽度(或高度)。祝你好运!