Problema de interfaz de usuario con un título nulo en UIAlertView iOS 8 beta 5

Tengo un problema relacionado con UIAlertView mientras ejecuto nuestra aplicación en iOS 8. Estoy mostrando una alerta con el título como nil. Funcionaba bien en iOS 7, pero ahora la interfaz de usuario parece extraña.

Aquí adjunto la captura de pantalla.

introduzca la descripción de la imagen aquí Una solución que encontré es que cuando proporciono una cadena vacía @ "" se ve bien. Vea la siguiente captura de pantalla. Pero no estoy seguro de si el problema que mencioné es un error en la versión beta iOS 8 o si hay alguna otra solución mejor. Incluso con la solución, no es exacta, ya que era en iOS 7.

introduzca la descripción de la imagen aquí

iOS 7: muestra la vista de alerta con el título como nil. Captura de pantalla aquí. introduzca la descripción de la imagen aquí

Ha sido la mejor práctica para mí usar initWithTitle:@"" para UIAlertView , UIActionSheet desde iOS 6 porque estaba enfrentando un problema de layout durante ese time cuando estaba usando initWithTitle:nil . Traté de encontrarme de return, no pude encontrarlo, ¿cuál es exactamente la razón?

Desde su captura de pantalla en iOS 8, creo que hay un cambio en la jerarquía de vista en UIAlertView para iOS 8. Creo que Auto layout se puede implementar en la jerarquía de vista, así como también puede ver el postLabel saltar hasta el títuloLabel.

No puedo estar seguro porque la jerarquía de vista para UIAlertView es privada.

La class UIAlertView está diseñada para usarse tal cual y no admite subclasss. La jerarquía de vista para esta class es privada y no debe modificarse.

Consulte: https://developer.apple.com/library/ios/documentation/uikit/reference/UIAlertView_Class/UIAlertView/UIAlertView.html

Pero uso el código:

 NSLog(@"%@",[self.alertView description]); 

Resultado en iOS 7.1:

 <UIAlertView: 0x7fb3c05535b0; frame = (18 263; 284 62); opaque = NO; layer = <CALayer: 0x7fb3c0519810>> 

Resultado en iOS 8.0:

 <UIAlertView: 0x7bf64840; frame = (0 0; 0 0); layer = <CALayer: 0x7bf648f0>> 

No estoy seguro de por qué el marco UIAlertView para iOS 8 es (0 0; 0 0);

Como dijo Mike, creo que deberías aprender a utilizar UIAlertController para iOS 8.

Lo más cercano que pude get con iOS 8 fue configurando el título en lugar del post:

  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Location field requinetworking." message:nil delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 

Título UIAlertView iOS8

Sin embargo, debe tenerse en count que UIAlertView está en desuso en iOS 8 y, si va a utilizar routes de código separadas para iOS 7 y iOS 8, debería usar UIAlertController en UIAlertController lugar:

 UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Location field requinetworking." message:nil prefernetworkingStyle:UIAlertControllerStyleAlert]; [alert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { [self dismissViewControllerAnimated:YES completion:nil]; }]]; [self presentViewController:alert animated:YES completion:nil]; 

Obtuve los mismos resultados con ambos methods.

Logré get una alignment de posts decente sin la fuente en negrita al:

  1. Establecer el título en @ "" en lugar de nil y
  2. (Si IOS8) antepone un "\ n" al frente del post.
 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:@"\nLocation field requinetworking." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 

introduzca la descripción de la imagen aquí