2010-07-09 17 views
7

Cada vez que ensanchar un UITextView a un tamaño mayor que 512, con código como:UITextView anchura mayor que 512 no muestra el texto

textView = [[UITextView alloc] initWithFrame: CGRectMake(0, 0, 513, 1024)]; 

No muestra ningún texto de más de 512 obras ... , cualquier tamaño por debajo de eso también, pero cualquier cantidad mayor a 512 y deja de mostrar cualquier texto. El código completo:

- (void)loadView { 
    self.navigationItem.hidesBackButton = YES; 

    self.view = [[UIView alloc] init]; 
    self.view.backgroundColor = [UIColor blackColor]; 

    RDLocalizedStrings * strings = [RDLocalizedStrings defaultLocalizedStrings]; 

    NSString* message = [strings getStringWithKey: @"noUpdatesAvailableText"]; 

    CGFloat messageFontSize; 

    RDRectCreate(message); 

    BOOL iPad = NO; 
#ifdef UI_USER_INTERFACE_IDIOM 
    iPad = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad); 
#endif 
    if (iPad) { 
     RDRectWrite(message, 0, 100, 513, 200); 
     messageFontSize = 20.0; 
    } else { 
     RDRectWrite(message, 0, 0, 320, 480); 
     messageFontSize = 20.0; 
    } 

    textView = [[UITextView alloc] initWithFrame: messageRect]; 
    textView.text = message; 
    textView.backgroundColor = [UIColor redColor]; 
    textView.textAlignment = UITextAlignmentCenter; 
    textView.textColor = [UIColor whiteColor]; 
    textView.font = [UIFont systemFontOfSize: messageFontSize]; 
    textView.editable = NO; 

    [self.view addSubview: textView]; 
} 
+1

Estoy experimentando exactamente el mismo problema (incluida la <512px "solución") en una vista de texto instanciada desde un NIB. Lo curioso es que el texto está ahí (editable, seleccionable) pero simplemente no visible. Después de presionar enter en la vista de texto, aparece el texto. Realmente extraño. – mvds

+0

Si es útil para cualquier persona, tuve un problema similar en http://stackoverflow.com/questions/10211133/ios-uitextview-not-displaying-correctly-bug – Jacksonkr

Respuesta

3

parecer UIViewAutoresizingFlexibleWidth hacer que el texto UITextView la piel del iPad. Cambiar el tamaño con textView.frame=CGRectMake(0,0,768,21) puede solucionar esto.

+1

Si el marco actual ya es correcto, simplemente se especifica 'textView. frame = textView.frame; 'parece funcionar. –

Cuestiones relacionadas