iOS - 向UITableViewCell添加徽章

use*_*383 12 objective-c uitableview ios

如何添加徽章UITableViewCell,如下所示:

替代文字http://img17.imageshack.us/img17/9974/img0001ac9.png

我应该简单地添加一个带有文本和标签的子视图吗?

Sim*_*lGy 5

这是@ 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
}
Run Code Online (Sandbox Code Playgroud)

结果(我使用的是品牌颜色,但你的颜色可以是任何颜色):

uilabel徽章


Mat*_*off 1

是的,目前不支持将徽章添加到 UITableView Cell 的方法。在此示例中,它很可能是包含图像和 UILabel 的自定义子视图。