2010-05-29 4 views
2

J'essaie de dessiner une vue personnalisée avec une ombre portée. J'ai des résultats différents de l'iPhone OS 3.2. Le système de coordonnées a-t-il été modifié pour CGContextSetShadowWithColor à partir de la version 3.2?Une ombre portée différente de celle de l'iPhone OS 3.2?

est le code que je suis ici en utilisant:

CGContextRef graphicContext = UIGraphicsGetCurrentContext(); 

CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB(); 
CGFloat values1[4] = { 0, 0, 0, 1}; 
CGColorRef blackColor = CGColorCreate (colorspace, values1); 
CGContextSetShadowWithColor(graphicContext, CGSizeMake(0, -1), 3, blackColor); 
CGColorRelease(blackColor); 

CGFloat values2[4] = { .5, .5, 1, 1}; 
CGColorRef fillColor = CGColorCreate (colorspace, values2); 
CGContextSetFillColorWithColor(graphicContext, fillColor); 
CGColorRelease(fillColor); 
CGContextFillRect(graphicContext,CGRectMake(40, 40, 100, 100)); 

Voici comment looks on 3.1 and from 3.2.

Toutes mes vues utilisant l'ombre portée ont un aspect différent selon la version de l'iPhone OS. Est-ce que je manque quelque chose?

Répondre

1

Cela a été changé dans iPhoneOS 3.2, mais ce n'était pas dans les notes de publication. Vous devez vérifier la version du système d'exploitation et inverser l'axe des y de votre décalage d'ombre.

En tant qu'ingénieur Apple déclaré dans le devforums, ce n'est pas un bug, c'est un changement dans l'API.

+0

Je ne vois pas pourquoi ils ont changé cela. Ils doivent avoir leurs raisons ... Merci pour l'info. – Axel

Questions connexes