如何在UILabel画一个圆圈?

Smi*_*ith 5 iphone core-graphics objective-c uilabel ios

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

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

tar*_*mes 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];
Run Code Online (Sandbox Code Playgroud)

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

更新:

我突然意识到你要努力让"A"垂直偏移,以便在它周围放一个圆圈.有一些hacks可以在UILabel中获得垂直居中,但是你最好还是使用UITextField,因为它支持contentVerticalAlignment属性.您只需将其userInteractionEnabled设置为NO即可防止用户在其上键入文本!

除此之外,添加CAShapeLayer的原则是相同的.


Fah*_*mov 5

您可以通过@maddy建议的方式或实现这一目标,建立UILabel同方矩形,把文本对齐到中间和使用标签的层的cornerRadius使用borderWidth.只需设置cornerRadius标签的半宽(或高度)即可.祝好运!