如何添加徽章UITableViewCell
,如下所示:
替代文字http://img17.imageshack.us/img17/9974/img0001ac9.png
我应该简单地添加一个带有文本和标签的子视图吗?
这是@ POF答案的快速增强.我们不需要那么多的子视图,我们可以使用数学来支持N位,而不仅仅是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 }
结果(我使用的是品牌颜色,但你的颜色可以是任何颜色):