Вопрос по ios, iphone – Font With Strike через него

2

Я делаю один проект обработки задачи дня, как делать заметки.
Таким образом, я назначаю ежедневную задачу, и когда задача выполнена, я хочу, чтобы одна строка проходила через имя задачи.
Я ищу подходящее семейство шрифтов, которое имеет эту сквозную линию, но не удалось.
поэтому, пожалуйста, предложите мне имя шрифта .ttf для этого, чтобы я мог использовать этот шрифт в своем проекте, чтобы выполнить мое требование.

Ваш Ответ

5   ответов
5

******ОПЦИЯ 1******

.

Если вы хотите зачеркнуть текст в многострочном режиме: используйтеTTTAttributedLabel

создайте новые файлы TTTAttributedLabel.h и TTTAttributedLabel.m (не из GITHUB, потому что я настраивал функцию одинарного / двойного зачеркивания)

http://www.2shared.com/file/Z_qZpWVd/TTTAttributedLabel.html

http://www.2shared.com/file/xXjmC-1M/TTTAttributedLabel.html

и где вам нужна зачеркнутая этикетка - использованиеTTTAttributedLabel вместоUILabel.

Установитьstrikethrough =

TTTAttributedLabel *labelName = [[TTTAttributedLabel alloc] init];

labelName.linkAttributes = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] 
                forKey:@"TTTCustomStrikeOut"];   

Установитьdoublethrough =

TTTAttributedLabel *labelName = [[TTTAttributedLabel alloc] init];

labelName.linkAttributes = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] 
                forKey:@"TTTCustomDoubleStrikeOut"];

Добавьте диапазон, где текст метки должен быть выделен + предоставить кликабельную ссылку (ноль, без ссылки):

//set link to nil, to NOT-have a link on taping on this label.
[labelName addLinkToURL:nil withRange:NSMakeRange(0, [labelName.text length])];

Постскриптум - чтобы правильно переместить двойные зачеркнутые линии - отредактируйте файл TTTAtributedLabel.m, в строках 483, 484 и 489, 490 (в настоящее время я изменил верхнюю строку y-2 и нижнюю y + 2 от центра. отрегулируйте это для улучшения результатов.)

.

****** ВАРИАНТ 2 ******

.

Преобразуйте все строковые символы в специальные зачеркнутые символы.

Вы можете получить их с этой домашней страницы:http://adamvarga.com/strike/

Затем Вы можете, например, поместить необходимые переводы символов в языковой файл:

"A" = "A̶"; "B" = "B̶"; "C" = "C̶"; "D" = "D̶"; "E" = "E̶"; "F" = "F̶"; "G" = "G̶"; "H" = "H̶"; ....

и используйте эту функцию, чтобы превратить обычную текстовую строку в вычеркнутую строку:

- (NSString *)returnStrikedOutTextFromString:(NSString *)mString
{
    NSString * mNewString = @"";

    for(int i = 0; i<[mString length]; i++)
    {
        mNewString = [NSString stringWithFormat:@"%@%@",mNewString, 
        NSLocalizedString([[mString substringToIndex:i+1] substringFromIndex:i],nil)];
    }

    return mNewString;
}

например:

textLabel.text = [self returnStrikedOutTextFromString:@"string text"];

**** ВАРИАНТ 3 ****

Я также предложил бы попробовать этот подкласс UILabel, упомянутый здесь:Подчеркните текст в UIlabel

Надеюсь, это поможет!

Error: User Rate Limit Exceeded KDeogharkar
Error: User Rate Limit Exceeded KDeogharkar
Error: User Rate Limit Exceeded KDeogharkar
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
2

Если вы используете другую простую идею, она отлично работает, а также очень легко ....

просто добавьте еще один ярлык над вашим ярлыком и код этикетки

UILabel *canceledlable = [[UILabel alloc] initWithFrame:yourmainlableframe];
canceledlable.opaque = YES;
canceledlable.backgroundColor = [UIColor clearColor];
canceledlable.text = @"------------------------------------------------";
canceledlable.lineBreakMode = UILineBreakModeClip;
[self.view addSubview: canceledlable];

here which lable want you strikethrough font just give its frame to here and add this lable when your task is done Hope,this help you...... :)

Error: User Rate Limit Exceeded
1

Попробуйте это дополнение с TTTAttributedLabel.

@implementation TTTAttributedLabel (Additions)

- (void)setStrikeThroughOn:(BOOL)isStrikeThrough {
    NSString* text = self.text;
    [self setText:text afterInheritingLabelAttributesAndConfiguringWithBlock:^        NSMutableAttributedString *(NSMutableAttributedString *mutableAttributedString) {
    NSRange strikeRange = [[mutableAttributedString string] rangeOfString:text options:NSCaseInsensitiveSearch];
    [mutableAttributedString addAttribute:kTTTStrikeOutAttributeName value:[NSNumber numberWithBool:isStrikeThrough] range:strikeRange];
    return mutableAttributedString;
}];

// must trigger redraw
[self setNeedsDisplay];
}

@end
2

Используйте приведенный ниже код для чередования строк:

NSString *string = Yourlabel.text;
CGSize stringSize = [string sizeWithFont:Yourlabel.font];
CGRect buttonFrame = Yourlabel.frame;
CGRect labelFrame = CGRectMake(buttonFrame.origin.x , 
buttonFrame.origin.y + stringSize.height/2, 
                                           stringSize.width, 2);
UILabel *lineLabel = [[UILabel alloc] initWithFrame:labelFrame];
lineLabel.backgroundColor = [UIColor blackColor];
[CellView addSubview:lineLabel];
0

В Свифте

let label = UITextView(frame: CGRectMake(0, 0, 300, 100))
let strikeThroughAttributes = [NSStrikethroughStyleAttributeName: NSUnderlineStyle.StyleSingle.rawValue]
let labelString = NSAttributedString(string: "Hello, playground", attributes: strikeThroughAttributes)
label.attributedText = labelString

Похожие вопросы