Как добавить значок к UITableViewCell
, например:
alt text http://img17.imageshack.us/img17/9974/img0001ac9.png
Должен ли я просто добавить subview с текстом и меткой на нем?
Как добавить значок к UITableViewCell
, например:
alt text http://img17.imageshack.us/img17/9974/img0001ac9.png
Должен ли я просто добавить subview с текстом и меткой на нем?
Здесь быстрое повышение ответа @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
}
И результат (я использую цвет бренда, но ваш может быть любого цвета):
Что касается меня , самым простым способом является использование cell.accessoryView
. Пожалуйста, загляните в мой код, как я это сделал:
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;
И мой результат:
Надеюсь, что это поможет.
TDBadgedCell - довольно хороший выбор. Высоко настраиваемый для ваших нужд.
Да, в настоящее время нет поддерживаемого способа добавления значка в ячейку UITableView. В этом примере это, скорее всего, пользовательское подзаголовок, который содержит изображение и UILabel.
Я хотел бы добавить еще одну альтернативу для создания настраиваемых значков. CustomBadge является немного более мощным. Он открыт и бесплатно.