¿Cómo agrego una insignia a UITableViewCell
, así:IOS - Añadir a UITableViewCell Placa
alt text http://img17.imageshack.us/img17/9974/img0001ac9.png
¿Debo simplemente agregar una vista secundaria con un texto y una etiqueta en él?
¿Cómo agrego una insignia a UITableViewCell
, así:IOS - Añadir a UITableViewCell Placa
alt text http://img17.imageshack.us/img17/9974/img0001ac9.png
¿Debo simplemente agregar una vista secundaria con un texto y una etiqueta en él?
Sí, actualmente no hay forma admitida de agregar una insignia a una celda UITableView. En este ejemplo, lo más probable es que sea una subvista personalizada que contenga una imagen y UILabel.
Me gustaría agregar otra alternativa para crear insignias personalizadas. CustomBadge es un poco más poderoso. Está abierto y gratis.
En cuanto a mí la forma más simple es usar cell.accessoryView
. Por favor mirar en mi código de cómo lo hice:
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;
Y mi resultado:
espero que ayude.
No publiques exactamente la misma respuesta a varias preguntas: o no es una buena opción para todos o las preguntas son duplicados que deben marcarse/cerrarse como tales. –
Si lo hace más fácil de encontrar, no veo mucho problema. A veces, las preguntas duplicadas aparecen primero en Google, e incluso si están marcadas, a veces pueden tener mejores respuestas. – Samin
TDBadgedCell es una muy buena opción. Altamente personalizable para sus necesidades.
Aquí hay una mejora rápida de la respuesta de @ POF. No necesitamos tantos subvistas y podemos usar las matemáticas para apoyar N dígitos, no sólo 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
}
Y el resultado (yo uso un color de la marca, pero el suyo puede ser de cualquier color):
[aquí] (http://www.spaulus.com/2010/09/create-a-custom-iphone-ipad-badge/?lang=en) es una alternativ de mi propia. ¡Disfrutar! – Sascha