我想做这样的事,
如何在UILabel中绘制一个看起来与此图像相似的圆圈,我只想避免使用图像。
答案 0 :(得分: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”垂直偏移,以便在它周围放一个圆圈。有一些hacks可以在UILabel中获得垂直居中,但是你最好还是使用UITextField,因为它支持contentVerticalAlignment属性。您只需将其userInteractionEnabled设置为NO即可防止用户在其上键入文本!
除此之外,添加CAShapeLayer的原则是相同的。
答案 1 :(得分:5)
您可以通过@maddy建议的方式实现此目的,或者使用方形矩形创建UILabel
,将文本对齐放到中间,并使用标签的图层cornerRadius
和borderWidth
。只需将cornerRadius
设置为标签的半宽(或高度)即可。祝你好运!