2010-12-01 5 views
1

Salut tout le monde J'utilisais le code ci-dessous pour donner une couleur personnalisée à l'UIAlertView. J'utilisais S.D.K. 3.2.3 et la couleur changeait à la couleur désirée. Mais aujourd'hui j'ai mis à jour mon S.D.K. Maintenant, j'utilise 4.2.1 et également exécuter ce code sur ce S.D.K. Cela a fonctionné.Mais quand j'ai vérifié encore la couleur de l'AlertView n'a pas changé, mais la couleur que j'ai fournie avec l'image, déplacée vers l'arrière de l'alertview. Je ne sais pas pourquoi ceci se produit. Y at-il quelque chose de mal que je ne fonctionne pas avec ios 4.2. Juste laissez-moi savoir comment faire cela dans ios 4.2 le code fonctionnait bien avec 3.2.3 sdk. Le code estCouleur personnalisée dans UIAlertView

UIAlertView *ForgotPassalert= [[UIAlertView alloc]initWithTitle:@"Status" message:@"An Email has sent to your Account Containing User Name and Password " delegate:self cancelButtonTitle:@"OK" otherButtonTitles:@"cancel",nil]; 

     CGAffineTransform moveUp = CGAffineTransformMakeTranslation(0.0, 
-120.0); 
     [ForgotPassalert setTransform: moveUp]; 
     [ForgotPassalert show]; 

    #pragma mark (AlertView Custom Color)  
     UIImage *theImage = [UIImage imageNamed:@"Untitled-1.png"];  
     theImage = [theImage stretchableImageWithLeftCapWidth:16 topCapHeight:16]; 
     CGSize theSize = [ForgotPassalert frame].size; 
     UIGraphicsBeginImageContext(theSize); 

     [theImage drawInRect:CGRectMake(0, 0, theSize.width, theSize.height)];  
     theImage = UIGraphicsGetImageFromCurrentImageContext(); 

     UIGraphicsEndImageContext(); 
     [[ForgotPassalert layer] setContents:(id)theImage.CGImage]; 

     //[[Passalert layer]setBackgroundColor:[[UIColor colorWithRed:179.0f/255.0f green:21.0f/255.0f blue:17.0f/255.0f alpha:1.0f]CGColor]]; 
     [[ForgotPassalert layer]setCornerRadius:7.3F]; 
     [ForgotPassalert release]; 

Répondre

0

La seule raison possible derrière cela, Apple aurait changé la structure de la couche du AlertView ou sa mise en œuvre. C'est pourquoi vous ne pouvez pas voir la couleur changée.

C'est la raison pour laquelle il est suggéré de ne pas perturber l'apparence des contrôles par défaut (comme UIAlertView, UIActionSheet, UIPickerView) car Apple ne fournit pas de méthodes publiées pour cela. Et tout ce que vous avez fait est seulement la solution qui est maintenant brisée.

Vous avez la chance que votre application ne plante pas, alors ne vous souciez pas de la couleur qui ne s'affiche pas sur l'alerte.

espère que vous comprenez le user interface guidelines.

base Merci,

Madhup

+0

ok, oui je pensais aussi la même chose.Merci – Sabby

0

ne Donc cela signifie qu'il n'y a pas d'autre moyen de changer la couleur comme dans mon application, je l'ai fait tout adapté à l'application schéma de couleurs qui est rouge et noir, mais seulement les boîtes de dialogue créent des dégâts avec leur couleur bleue par défaut J'utilise xcode 4.2 avec storyboard, j'ai apporté des modifications à UIActionSheet mais incapable de changer la couleur de fond AlertView.

+1

Vous pouvez ensuite utiliser, alertview personnalisé et feuille d'action, juste google through et vous trouverez l'exemple de code .... Je réponds très tard ... Mais peut aider d'autres personnes – Sabby