2010-08-04 5 views
2

J'essaye d'immiter le compte-étiquette qui est utilisé dans l'application de courrier de pommes, qui montre le nombre de messages dans un dossier/boîte aux lettres. La couleur du texte est blanche et le fond des étiquettes est gris/bleuâtre avec des coins arrondis. (screenshot)UILabel avec cornerRadius dans UITableView

Pour obtenir le même regard, je l'ai fait une coutume UITableViewCell pour ma table, et a essayé de style de l'étiquette correspondante comme ceci:

label.layer.cornerRadius = 10.0; 

Ce code ressemble fondamentalement à l'application de messagerie. Cependant, la performance de ce code semble être vraiment médiocre. J'ai installé l'application sur mon iphone 3gs, et en faisant défiler la table, la vue bouge vraiment lentement et unsmooth. quand je désactive les coins arrondis, il fonctionne à nouveau bien. est mon code un peu faux, ou que puis-je faire pour améliorer les performances? devrais-je utiliser des arrière-plans png plutôt que des coins arrondis? si oui, que devrais-je faire pour que l'arrière-plan png ajuste sa largeur en fonction de la largeur de l'étiquette/de la longueur du texte? J'ai déjà ajouté du code pour le faire et cela fonctionne, mais je pense que pour les arrière-plans png, il suffirait juste de distendre/déformer l'image de fond, non?

+0

Ce n'est pas possible dans Visual Basic. Peut-être que si vous apprenez à étiqueter, nous pouvons tous savoir à quoi vous avez affaire ... – leppie

Répondre

0

Il semble que l'utilisation de cornerRadius force CALayer à couper, ce qui est coûteux. Vous pouvez également "pouvoir" la forme en tant qu'image extensible (qui pourrait être utilisée comme image de fond sur un descendant UIView) ou la dessiner en utilisant CGPath s ou UIBezierPath s.

0

la façon la plus simple est de prendre une image bakground et l'utiliser c'est siloution simple et si vous voulez en codant alors il est difficile, car UILabel est pas coin redious

Questions connexes