Sto preparando la mia app per iPhone per pubblicare su iOS 5 GM e ho trovato un bug con UIView. Quando eseguo l'override del metodo drawRect su una sottoclasse, il simulatore mostra il risultato desiderato, ma quando provo a testare su un dispositivo reale, l'override drawRect non ha alcun effetto.iOS 5 URIdiew override drawRect non funziona sul dispositivo
Ho persino inserito un'istruzione di registrazione all'interno di un comando drawRect e confermato che viene chiamato.
Qualcun altro ha notato questo problema?
Ecco un codice di override sto 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));
}
Ecco il codice per la generazione di colore
+(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;
}
Ancora una volta, questo codice funziona perfettamente in iOS 4.xe in the Simulator per iOS 5. L'unico posto rotto è iOS 5 Device.
Inserisci il tuo codice, è più probabile che ci sia un problema lì che in iOS poiché è così semplice che altri lo avrebbero incontrato anche se c'è un bug (la nostra azienda ha diverse app iOS e non abbiamo visto eventuali problemi in quest'area). – DarkDust
Inoltre, iOS 5 è ancora sotto NDA, quindi potresti voler andare al Dev-Forum. – Phlibbo
Ho inserito una domanda nel forum dev ma finora nessuno ha avuto risposta. – Jay