2

メモを取るなど、その日のタスクを処理するプロジェクトを 1 つ実行しています。
そのため、毎日のタスクを割り当て、タスクが完了したら、タスク名に 1 行の取り消し線を付けます。
この取り消し線がある適切なフォント ファミリを探していますが、失敗しました。
そのため、プロジェクトでそのフォントを使用して要件を満たすことができるように、.ttf フォント名を提案してください。

4

5 に答える 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

取り消し線のラベルが必要な場合は、 UILabel の代わりに TTTAttributedLabel を使用ください

取り消し線を設定するには=

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

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

ダブルスルーを設定するには=

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

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

ラベル テキストを打ち消す範囲を追加 + クリック可能なリンクを提供 (リンクなしの場合は nil ):

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

PS - 二重取り消し線を適切に再配置するには、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 のテキストに下線を引く

それが役立つことを願っています!

于 2012-05-11T12:39:34.250 に答える
2

別の単純なアイデアを使用すると、うまく機能し、非常に簡単になります....

ラベルの上に別のラベルを追加するだけで、ラベルコードは

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

ここで、どのラベルに取り消し線のフォントが必要ですか?ここにフレームを付けて、タスクが完了したらこのラベルを追加してください。

于 2012-05-11T12:11:14.787 に答える
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];
于 2012-05-11T12:00:30.740 に答える
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
于 2014-12-29T19:50:41.230 に答える