2010-06-01 5 views
2

Je travaille sur une application iPhone qui a des éléments d'interface utilisateur non rectangulaires. Actuellement, je suis sous-classe UIView, et en drawRect J'utilise un CGPathRef pour dessiner une bordure noire et un intérieur coloré. Je souhaite que ces éléments ressemblent plutôt à des «boutons», alors j'aimerais avoir un peu le même genre d '«effets de verre» qui sont utilisés, par exemple, sur les «boutons». les icônes pour une application iPhone (lorsque vous ne définissez pas UIPrerenderedIcon sur true) ou dans d'autres boutons.Comment créer un effet "verre" sur mes propres UIViews?

je chassais autour et avait découvert, ce qui semble être proche de ce que j'ai besoin:

Gradients on UIView and UILabels On iPhone

Mais je vais avoir du mal à comprendre comment agrafer le gradient de ma forme.

Il semblerait que la propriété mask sur la vue soit le bon endroit où aller, ce qui me semble devoir appeler un nouvel objet CALayer, avec le découpage en quelque sorte appliqué.

J'espère qu'il y a une fonction très pratique pour ce faire, mais si j'ai besoin d'écrire quelque chose de plus compliqué, c'est OK. J'ai juste du mal à trouver comment appliquer le chemin comme un masque. Je ne suis pas sûr si j'ai besoin de créer un nouveau contexte de dessin et d'y dessiner le chemin? Et puis utilisez CGContextClip?

Je pense que j'ai beaucoup de bonnes pièces à comprendre, j'ai juste du mal à comprendre comment les assembler.

Quelqu'un pourrait-il me diriger dans la bonne direction? (Je suis heureux de lire plus dans les docs, juste me diriger dans la bonne direction, s'il vous plaît.)

Répondre

0

Vous pouvez créer un CAShapeLayer et définir son chemin d'accès à votre CGPathRef. Ensuite, définissez la propriété de masque d'un CAGradientLayer à votre shapeLayer.

+0

J'ai récemment dormi sur le développement d'un iPhone, mais je vais essayer de le faire à un moment donné, et je vous ferai connaître le résultat. Merci! – lindes

Questions connexes