Estoy preparando mi aplicación de iPhone para publicar en iOS 5 GM y encontré un error con UIView. Cuando anulo el método drawRect en una subclase, el simulador muestra el resultado deseado, pero cuando intento probarlo en un dispositivo real, la anulación drawRect no tiene ningún efecto.iOS 5 UIView drawRect override no funciona en el dispositivo
Incluso coloque una declaración de registro dentro de una anulación drawRect y confirmó que se está llamando.
¿Alguien más ha notado este problema?
Aquí hay un código de anulación que estoy usando:
- (void)drawRect:(CGRect)rect {
DebugLog(@"*** calling drawRect ***");
CGContextRef context = UIGraphicsGetCurrentContext();
// draw the dark gray background
CGContextSetFillColor(context, [SkinManager getWhiteColor]);
CGContextFillRect(context, CGRectMake(0.0, 0.0, rect.size.width, rect.size.height));
// draw the text field background in white
CGContextSetFillColor(context, [SkinManager getDarkGray]);
CGContextFillRect(context, CGRectMake(2.0, 2.0, rect.size.width - 4, rect.size.height - 4));
}
Aquí está el código para generar el color
+(const CGFloat*) getDarkGray {
UIColor *color = [UIColor colorWithRed:51/255.0 green:51/255.0 blue:51/255.0 alpha:1];
return [self getCGColor:color];
}
+(const CGFloat*) getCGColor: (UIColor*)color {
CGColorRef colorref = [color CGColor];
const CGFloat *components = CGColorGetComponents(colorref);
return components;
}
Una vez más, este código funciona perfectamente en iOS 4.xy en el simulador para iOS 5. El único lugar que se rompe es el dispositivo iOS 5.
Publique su código, es más probable que exista un problema allí que en iOS, ya que es muy básico que otros lo hayan encontrado también si realmente hay un error (nuestra empresa tiene varias aplicaciones iOS y no hemos visto cualquier problema en esta área). – DarkDust
Además, iOS 5 aún está bajo NDA, por lo que es posible que desee ir al Dev-Forum. – Phlibbo
Hice una pregunta en el foro de desarrollo, pero hasta ahora nadie tiene ninguna respuesta. – Jay