Подтвердить что ты не робот

Сквозной шрифт в объективе C

Как использовать удаленный шрифт в объекте C??? Более конкретно в UITableViewCell

cell.textLabel.text = name;
cell.detailTextLabel.text = quantity ;
cell.XXX = ??
4b9b3361

Ответ 1

РЕДАКТИРОВАТЬ: этот ответ устарел с iOS 6. Пожалуйста, просмотрите более свежие ответы ниже

Не существует встроенной поддержки штриховых или подчеркивающих шрифтов. Вы должны сами рисовать линии над представлениями для этикеток.

Это глупо, так как инспектор шрифтов для IB имеет опции для установки прокрутки и подчеркивания, но они быстро игнорируются, если вы попытаетесь их установить.

Ответ 2

это Марин, автор главы атрибутных строк в "iOS6 по учебникам".

Так как iOS6 на самом деле является нативной поддержкой для множества различных атрибутов текста, включая ударный желоб.

Вот краткий пример, который вы можете использовать для своей текстовой метки ячейки:

NSDictionary* attributes = @{
  NSStrikethroughStyleAttributeName: [NSNumber numberWithInt:NSUnderlineStyleSingle]
};

NSAttributedString* attrText = [[NSAttributedString alloc] initWithString:@"My Text" attributes:attributes];
cell.textLabel.attributedText = attrText;

Это все. Удачи!

Ответ 3

1-Получите размер текста, который нужно зачеркнуть

CGSize expectedLabelSize = [string sizeWithFont:cell.titleLabel.font constrainedToSize:cell.titleLabel.frame.size lineBreakMode:UILineBreakModeClip];

2 - Создайте строку и добавьте ее в текст

UIView *viewUnderline = [[UIView alloc] init];
viewUnderline.frame = CGRectMake(20, 12, expectedLabelSize.width, 1);
viewUnderline.backgroundColor = [UIColor grayColor];
[cell addSubview:viewUnderline];
[viewUnderline release]; 

Ответ 4

CGRect frame = sender.titleLabel.frame;
UILabel *strikethrough = [[UILabel alloc] initWithFrame:frame];
strikethrough.opaque = YES;
strikethrough.backgroundColor = [UIColor clearColor];
strikethrough.text = @"------------------------------------------------";
strikethrough.lineBreakMode = UILineBreakModeClip;
[sender addSubview:strikethrough];

Ответ 5

вот как вы зачеркнули свой лейбл. Но помните, что он работает только после ios 6.0

NSNumber *strikeSize = [NSNumber numberWithInt:2]; 

NSDictionary *strikeThroughAttribute = [NSDictionary dictionaryWithObject:strikeSize 
forKey:NSStrikethroughStyleAttributeName];

NSAttributedString* strikeThroughText = [[NSAttributedString alloc] initWithString:@"Striking through it" attributes:strikeThroughAttribute];

strikeThroughLabel.attributedText = strikeThroughText;

Ответ 6

NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"Your String here"];
[attributeString addAttribute:NSStrikethroughStyleAttributeName
                    value:@2
                    range:NSMakeRange(0, [attributeString length])];
yourLabel.attributedText = attributeString;

Ответ 7

Думали ли вы о том, чтобы найти свой собственный шрифт зачеркивания и загрузить его самостоятельно? Это не так сложно, просто добавьте UIFont в ваш файл Info.plist и поместите там название шрифта. Затем вы можете вручную установить текст в этот новый зачеркнутый шрифт.

Смотрите этот пост при загрузке пользовательского шрифта.

Можно ли встроить собственный шрифт...

Ответ 8

Зарисовка возможна с помощью NSStrikeThroughAttributes и attributedText UILabel. Вот решение в Swift

    let strikeThroughAttributes = [NSStrikethroughStyleAttributeName : 1]
    let strikeThroughString = NSAttributedString(string: "Text of Label", attributes: strikeThroughAttributes)
    strikeThroughLabel.attributedText = strikeThroughString

Ответ 9

UIView *strikeView = [[UIView alloc] initWithFrame:ccr(0, 0, myLabel.bounds.size.width, 1)];
strikeView.backgroundColor = [UIColor redColor];
strikeView.center = ccp(myLabel.bounds.size.width/2, myLabel.bounds.size.height/2);
[myLabel addSubview:strikeView];

Ответ 10

Это ударит по всей ячейке. Если вам нужно, чтобы он выглядел как завершенная задача:

CGSize size = cell.contentView.frame.size; // you'll draw the line in whole cell.

UIView *line = [[UIView alloc] initWithFrame:CGRectMake(15,size.height / 2,size.width - 30, 1)];
line.backgroundColor = [UIColor grayColor]; // set your preferred color
[cell addSubview:line];

Вы можете указать другое значение в CGRectMake вместо 15 - оно смещено на X. В этом случае вам лучше уменьшить ширину на удвоенное значение (в моем случае это 15 * 2 = 30), чтобы он выглядел красиво.