2009-06-28 5 views

Répondre

3

L'iPhone ne supporte pas les chaînes attribuées (ce qui est généralement le cas avec Cocoa), donc je ne crois pas que ce soit possible. Vous pouvez sous-classer UILabel et dessiner le strikethrough J'ai également vu certaines personnes utiliser un UIWebView pour faire ce genre de chose, mais cela me semble trop compliqué.

+0

Merci, peu ordures bien! blimin Apple! –

+0

Depuis iOS 6, il prend en charge NSAttributedString. Voir mon message – Stephen

3

Vous pouvez créer un autre UILabel au-dessus de votre étiquette et utiliser un caractère en tableau de bord:

label.text = @"––––––––––––––––––"; 

caveat: fonctionne avec Helvetica (système par défaut). Cela peut ne pas fonctionner avec d'autres polices.

1
UIView* slabel = [[UIView alloc] initWithFrame:CGRectMake(label.frame.origin.x, label.frame.origin.y+10, label.frame.size.width, 2)]; 
[self addSubview:slabel]; 
[slabel setBackgroundColor:label.textColor]; 

Vous pouvez ajouter une vue sur UILabel et la styliser avec les propriétés de l'étiquette.

1
NSAttributedString *str=[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"¥%.2f", productOne.priceBefore] attributes:@{NSStrikethroughStyleAttributeName:@(NSUnderlineStyleSingle)}]; 

cell.priceBefore.attributedText = str;