在UIButton中使用替代UILabel

时间:2013-08-15 22:45:31

标签: iphone objective-c uibutton uilabel subclass

这是我在这个留言板上的第一个问题,所以请放轻松我:)

不久之前,我遇到了一段有用的代码来更改UILabel,这基本上用黑色(或其他颜色)轮廓标记了标签中的文字。

- (void)drawTextInRect:(CGRect)rect; {

CGSize shadowOffset = self.shadowOffset;
UIColor *textColor = self.textColor;

CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(c, 2);
CGContextSetLineJoin(c, kCGLineJoinRound);

CGContextSetTextDrawingMode(c, kCGTextStroke);
self.textColor = [UIColor blackColor];
[super drawTextInRect:rect];

CGContextSetTextDrawingMode(c, kCGTextFill);
self.textColor = textColor;
self.shadowOffset = CGSizeMake(0, 0);
[super drawTextInRect:rect];

self.shadowOffset = shadowOffset;

}

我成功地使用它作为一个很好的模板来继承我的UILabels,现在我想说我对子类化有了一个公平的理解。

我想要做的是使用此子类作为UIButton的UILabel部分,以便我的按钮中的文本具有匹配的黑色轮廓。

任何帮助,甚至只是指向正确的方向都将非常感激。

由于

戴夫

1 个答案:

答案 0 :(得分:0)

为什么不只是子类UIButton,然后在该子类中对您在UILabel子类中对按钮的label属性进行相同的更改。基本上,您会以完全相同的方式执行所有操作,但所有更改都会引用self.titleLabel而不仅仅是self