2009-04-08 2 views
11

Как добавить значок в UITableViewCell, как это:IOS - Добавить значок в UITableViewCell

alt text http://img17.imageshack.us/img17/9974/img0001ac9.png

Должен ли я просто добавить подвид с текстом и этикетки на нем?

+0

[Здесь] (http://www.spaulus.com/2010/09/create-a-custom-iphone-ipad-badge/?lang=en) является Alternativ моей собственной. Наслаждайтесь! – Sascha

ответ

1

Да, в настоящее время нет поддерживаемого способа добавления значка в ячейку UITableView. В этом примере это, скорее всего, пользовательское подзаголовок, который содержит изображение и UILabel.

1

Я хотел бы добавить еще одну альтернативу для создания индивидуальных значков. CustomBadge немного более мощный. Это бесплатно и бесплатно.

2

Что касается меня Простейший способ использовать 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; 

И мой результат:

enter image description here

Надеется, что это помогает.

+0

Пожалуйста, не отправляйте точный ответ на несколько вопросов: это либо не подходит для всех, либо вопросы - это дубликаты, которые должны быть помечены/закрыты как таковые. –

+0

Если это облегчает поиск, я не вижу большой проблемы. Иногда повторяющиеся вопросы появляются сначала в Google, и даже если они помечены, иногда они могут получить более качественные ответы. – Samin

2

TDBadgedCell - довольно хороший выбор. Высоко настраиваемый для ваших нужд.

4

Вот быстрое повышение ответа @ 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 
} 

И результат (я использую цвет бренда, но ваш может быть любой цвет):

uilabel badge

Смежные вопросы