是的,剪辑只是没有用。
但是,如果您在UILabel
子类上创建插图怎么办。您可以将标签的框架制作成您需要的大小,然后设置您的插图。当您绘制文本时,它将使用插图在您需要的任何边缘周围提供填充。
缺点是,您将无法在 IB 中一眼判断换行。你必须拿你的标签并减去你的插图,然后你会看到它在屏幕上的真实外观。
。H
@interface MyLabel : UILabel
@property (nonatomic) UIEdgeInsets insets;
@end
.m
@implementation MyLabel
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
self.insets = UIEdgeInsetsMake(0, 3, 0, 3);
}
return self;
}
- (void)drawRect:(CGRect)rect {
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSaveGState(c);
CGRect actualTextContentRect = rect;
actualTextContentRect.origin.x += self.insets.left;
actualTextContentRect.origin.y += self.insets.top;
actualTextContentRect.size.width -= self.insets.right;
actualTextContentRect.size.height -= self.insets.bottom;
CGContextSetLineWidth(c, 5);
CGContextSetLineJoin(c, kCGLineJoinRound);
CGContextSetTextDrawingMode(c, kCGTextStroke);
self.textColor = [UIColor colorWithRed: 0.165 green: 0.635 blue: 0.843 alpha: 1.0];
[super drawTextInRect:actualTextContentRect];
CGContextRestoreGState(c);
self.textColor = [UIColor whiteColor];
[super drawTextInRect:actualTextContentRect];
}
编辑:为我的子类添加了完整代码UILabel
。稍微修改了代码以显示大笔划和正常刻字。