Tout ce que je veux est un pixel de contour noir autour de mon blanc UILabel texte.
J'ai eu comme la mesure du sous-classement UILabel avec le code ci-dessous, j'ai maladroitement bricolé à partir de quelques tangentiellement liés exemples en ligne. Et cela fonctionne, mais c'est très, très lent (sauf sur le simulateur) et je ne pouvais pas le faire pour centrer le texte verticalement (j'ai donc codé en dur la valeur de y, sur la dernière ligne temporairement). Ahhhh!
void ShowStringCentered(CGContextRef gc, float x, float y, const char *str) {
CGContextSetTextDrawingMode(gc, kCGTextInvisible);
CGContextShowTextAtPoint(gc, 0, 0, str, strlen(str));
CGPoint pt = CGContextGetTextPosition(gc);
CGContextSetTextDrawingMode(gc, kCGTextFillStroke);
CGContextShowTextAtPoint(gc, x - pt.x / 2, y, str, strlen(str));
}
- (void)drawRect:(CGRect)rect{
CGContextRef theContext = UIGraphicsGetCurrentContext();
CGRect viewBounds = self.bounds;
CGContextTranslateCTM(theContext, 0, viewBounds.size.height);
CGContextScaleCTM(theContext, 1, -1);
CGContextSelectFont (theContext, "Helvetica", viewBounds.size.height, kCGEncodingMacRoman);
CGContextSetRGBFillColor (theContext, 1, 1, 1, 1);
CGContextSetRGBStrokeColor (theContext, 0, 0, 0, 1);
CGContextSetLineWidth(theContext, 1.0);
ShowStringCentered(theContext, rect.size.width / 2.0, 12, [[self text] cStringUsingEncoding:NSASCIIStringEncoding]);
}
J'ai juste un sentiment tenace que je suis surplombant un moyen plus simple de faire cela. Peut-être en substituant "drawTextInRect", mais je n'arrive pas à obtenir drawTextInRect pour se plier à ma volonté, à tous malgré la regardant fixement et en fronçant les sourcils vraiment vraiment dur.