私は現在、多くUITableViewCellの s で取り消し線テキストを表示する必要があることに苦労しています。HTMLで書かれたものは次のようになります
<strike>€99</strike> 50% オフ => 今なら €49
a を 1 行のテキストだけに使用したくありませんUIWebView。特に、小さなUITableViewCells で使用される場合はそうです。再利用可能なセルなどがあることは知っていますが、可能な限りメモリ効率の良い方法を維持したいと考えています。
だから... AliSoftwareの-replacementNSAttributedStringの助けを借りて、 s を使用しています。iOS 4.0 以降でしか利用できないという事実は問題ではありません。UILabelOHAttributedLabel
属性付きの文字列をなんとか作成できました。テキストが に表示されますOHAttributedLabel。しかし、私が達成できないのは、「取り消し線」または「取り消し線」属性を設定することです。
基本的に私はこのように行きます:
NSString *price = [NSString stringWithFormat:@"%01.2f €", product.price]; NSString *rate = [NSString stringWithFormat:@" -%01.0f%%", product.reductionRate]; NSMutableAttributedString *s = [NSMutableAttributedString attributedStringWithString:price]; [s addAttribute:NSStrikethroughStyleAttributeName 値:[NSNumber numberWithInteger:NSUnderlinePatternSolid | NSUnderlineStyleSingle] range:NSRangeFromString(price)]; [attributedLabel setAttributedText:s];
ただし、ここでは、3 つのNS*定数は定義されていません。をインポートCoreText.hしましたが、Foundation/NSAttributedString.h役に立ちませんでした。Web のどこかで、
NSStrikethroughStyleAttributeName = @"NSStrikethroughStyleAttributeName"、 、および を見たことがNSUnderlinePatternSolid = 0ありますNSUnderlineStyleSingle = 1が、これらの値をハードコーディングしても何も得られません。オートコンプリートで得たのは同等のkCT...*定数ですがkCTUnderlineStyleAttributeName、 , kCTStrokeWidthAttributeName, ... はありますが、kCTStrikethrough_anything については言及されていません。
その *$|#!@ 取り消し線テキストを表示するにはどうすればよいですか?