Comment puis-je ajouter un badge à UITableViewCell
, comme ceci:iOS - Ajouter Badge à UITableViewCell
alt text http://img17.imageshack.us/img17/9974/img0001ac9.png
Dois-je ajouter simplement un sous-vue avec un texte et l'étiquette là-dessus?
Comment puis-je ajouter un badge à UITableViewCell
, comme ceci:iOS - Ajouter Badge à UITableViewCell
alt text http://img17.imageshack.us/img17/9974/img0001ac9.png
Dois-je ajouter simplement un sous-vue avec un texte et l'étiquette là-dessus?
Oui, il n'existe actuellement aucun moyen d'ajouter un badge à une cellule UITableView. Dans cet exemple, il s'agit probablement d'une sous-vue personnalisée contenant une image et UILabel.
Je voudrais ajouter une autre alternative pour créer des badges personnalisés. CustomBadge est un peu plus puissant. C'est ouvert et gratuit.
Pour moi le plus simple est d'utiliser cell.accessoryView
. S'il vous plaît regarder dans mon code que je l'ai fait:
UIImageView * commentsViewBG = [[UIImageView alloc] initWithImage: [UIImage imageNamed: @"counter1.png"]];
commentsViewBG.frame = CGRectMake(
commentsViewBG.frame.origin.x,
commentsViewBG.frame.origin.y, 30, 20);
UILabel *commentsCount;
if (commentsArray.totalCount < 10)
commentsCount = [[UILabel alloc]initWithFrame:CGRectMake(10, -10, 40, 40)];
else if (commentsArray.totalCount < 100)
commentsCount = [[UILabel alloc]initWithFrame:CGRectMake(5, -10, 40, 40)];
else if (commentsArray.totalCount < 1000)
{
commentsViewBG.frame = CGRectMake(
commentsViewBG.frame.origin.x,
commentsViewBG.frame.origin.y, 40, 20);
commentsCount = [[UILabel alloc]initWithFrame:CGRectMake(5, -10, 40, 40)];
}
commentsCount.text = [NSString stringWithFormat:@"%ld",(long)commentsArray.totalCount];
commentsCount.textColor = [UIColor whiteColor];
commentsCount.backgroundColor = [UIColor clearColor];
[commentsViewBG addSubview:commentsCount];
cell.accessoryView = commentsViewBG;
Et mon résultat:
Hope it helps.
Veuillez ne pas poster exactement la même réponse à plusieurs questions: soit ne convient pas à tous, soit les questions sont des doublons qui doivent être signalés/fermés comme tels. –
Si c'est plus facile à trouver, je ne vois pas beaucoup de problèmes. Parfois, les questions en double apparaissent d'abord sur Google, et même si elles sont signalées, elles peuvent parfois avoir de meilleures réponses. – Samin
TDBadgedCell est un très bon choix. Hautement personnalisable pour vos besoins.
Voici une amélioration rapide de la réponse @ POF. Nous ne avons pas besoin autant subviews et nous pouvons utiliser les mathématiques pour supporter N chiffres, non seulement 1-3:
func setDiscountBadge(count: Int) {
let size: CGFloat = 26
let digits = CGFloat(count("\(number)")) // digits in the label
let width = max(size, 0.7 * size * digits) // perfect circle is smallest allowed
let badge = UILabel(frame: CGRectMake(0, 0, width, size))
badge.text = "\(number)"
badge.layer.cornerRadius = size/2
badge.layer.masksToBounds = true
badge.textAlignment = .Center
badge.textColor = UIColor.whiteColor()
badge.backgroundColor = cfg.UIColors.brand
YOURCELL.accessoryView = badge // !! change this line
}
Et le résultat (j'utilise une couleur de la marque, mais la vôtre peut être une couleur):
[ici] (http://www.spaulus.com/2010/09/create-a-custom-iphone-ipad-badge/?lang=en) est une alternativ de mon propre. Prendre plaisir! – Sascha