그래서 저는 사용자 정의 UIAlertView를 가지고 있습니다. (사용자 정의에 따라 프로그램 적으로 UILabel을 추가하는 것을 의미합니다). iOS < 11에서는 정상적으로 작동하지만 iOS 11에서는 비참하게 실패합니다. 그래서 iOS 10에서는 괜찮습니다 (왼쪽). 물론 동일한 코드로 iOS 11 (오른쪽)에서 오류가 발생합니다. iOS 11 사용자 정의 UIAlertView가 올바르게 렌더링되지 않습니다.
그리고 이것은 맞춤 UAlertView를 만들기 위해 사용하는 코드입니다. 어떤 아이디어?
SessionManager *sessionMgr = [SessionManager sharedManager];
NSString *saludoStr = [NSString stringWithFormat:@"¡Bienvenido %@!",self.datosPersonalesResponse.nombre];
NSString *mailStr = [sessionMgr getUserEmail];
NSString *mensajeStr = [NSString stringWithFormat:@"Te hemos enviado un email de \nactivación de cuenta a: \n\n%@\n\nActivá tu cuenta para recibir alertas,\n avisos recomendados y postularte a \nempleos.\n",mailStr];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:saludoStr message:@"" delegate:self cancelButtonTitle:@"Cerrar" otherButtonTitles:@"No lo recibí", nil];
UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
lbl.numberOfLines= 0;
[lbl setFont:[UIFont fontWithName:@"OpenSans" size:13]];
[lbl setTextColor:[UIColor colorWithRed:146/255.0f green:146/255.0f blue:146/255.0f alpha:1.0]];
NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:mensajeStr];
[attributedStr addAttribute:NSFontAttributeName
value:[UIFont fontWithName:@"OpenSans-Semibold" size:16]
range:NSMakeRange(56,[mailStr length])];
[attributedStr addAttribute:NSForegroundColorAttributeName value:[UIColor blackColor] range:NSMakeRange(56,[mailStr length])];
lbl.attributedText = attributedStr;
lbl.textAlignment = NSTextAlignmentCenter;
[alert setValue:lbl forKey:@"accessoryView"];
[alert show];
'UIAlertView'는 사용자 지정보기를 추가하는 기능을 지원하지 않습니다. 과거에는 작동했을 수도 있지만 문서에서는 항상 그렇게하지 않겠다고 명시했습니다. – rmaddy