2010-08-04 18 views
2

J'essaie de changer l'arrière-plan de l'uialertview. Tout fonctionne correctement, sauf que l'image d'arrière-plan que j'ajoute à la vue uialert ne sera pas mise à l'échelle dans la vue d'alerte. Donc, fondamentalement, vous ne voyez qu'une partie de mon image de fond basée sur la taille actuelle. Y a-t-il un moyen de faire en sorte que l'image évolue à l'intérieur de l'aperçu jusqu'à ce que ça s'adapte?iphone ==> UIAlertView change d'arrière-plan?

UIAlertView *theAlert = [[UIAlertView alloc] initWithTitle:title 
                message:msg 
                delegate:nil 
              cancelButtonTitle:@"OK" 
              otherButtonTitles: nil]; 
    [theAlert show]; 

    UIImage *theImage = [UIImage imageNamed:@"bg.jpg"]; 
    theImage = [theImage stretchableImageWithLeftCapWidth:16 topCapHeight:16]; 
    CGSize theSize = [theAlert frame].size; 

    UIGraphicsBeginImageContext(theSize); 
    [theImage drawInRect:CGRectMake(0, 0, theAlert.frame.size.width, theAlert.frame.size.height)]; 
    theImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    theAlert.layer.contents = (id)[theImage CGImage]; 
    [theAlert release]; 

Répondre

5

s'il vous plaît jeter un oeil à: http://joris.kluivers.nl/iphone-dev/?p=CustomAlert

Ils expliquent comment le faire par le sous-classement UIAlertView. Bonne chance!

+0

merci beaucoup beaucoup lien – aryaxt

+0

Ne fonctionne plus sur iOS 4.2 ... – Underdog

+0

Fonctionne bien sur iOS 6.1 mais ne supporte pas l'orientation de l'interface différente (l'alerte sera seulement en mode portrait). Je parle de ce lien: http://joris.kluivers.nl/blog/2012/03/02/custom-popups-revisited/ Si vous souhaitez obtenir un support d'orientation différent - vous pouvez sous-classer 'UIViewController', utiliser même approche 'window' change juste la méthode' [window addSubview:] 'pour window.rootViewController = ...' – derpoliuk