2017-10-12 4 views
0

私はカスタムUIAlertViewを持っています(カスタムでは、プログラム上の下にUILabelを追加しています)。 iOS < 11で正常に動作しますが、iOS 11では惨めに失敗します。だから、iOS 10ではうまくいく(左)が、同じコードでiOS 11(右)で失敗するiOS 10 vs iOS 11iOS 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]; 
+0

'UIAlertView'はカスタムビューの追加機能をサポートしていません。それは過去に働いていたかもしれないが、文書は常にそれをしないと述べている。 – rmaddy

答えて

2

UIAlertViewが推奨されていません。 UIAlertControllerfull details hereを使用してください。

+1

これはコメントであり、答えではありません。 – rmaddy

+0

答えは必ずしも解決策ではありませんが、問題があれば削除することができます。 – McNight

関連する問題