このような NSString 通知を作成したい:「あなたは 4.00 ドルを支払う必要があります。」.お金は赤い色をしています.Android では、HTML.formhtml を使用できます.しかし、IOS でそれを行う方法がわかりません。誰が私を助けることができます?
質問する
1236 次
3 に答える
2
このコードを試してください
CATextLayer *aTextLayer_= [[[CATextLayer alloc]init] autorelease];
aTextLayer_.frame = CGRectMake(10, 100, 300, 50);
aTextLayer_.backgroundColor=[UIColor clearColor].CGColor;
aTextLayer_.foregroundColor = [[UIColor redColor] CGColor];
aTextLayer_.alignmentMode=kCAAlignmentCenter;
aTextLayer_.contentsScale = [[UIScreen mainScreen] scale];
aTextLayer_ .wrapped=YES;
[aTextLayer_ setAlignmentMode:kCAAlignmentLeft];
UIFont *smallFont = [UIFont systemFontOfSize:25];
CTFontRef ctSmallFont = CTFontCreateWithName((CFStringRef)smallFont.fontName, smallFont.pointSize, NULL);
UIFont *boldFont = [UIFont systemFontOfSize:25];
CTFontRef ctBoldFont = CTFontCreateWithName((CFStringRef)boldFont.fontName, boldFont.pointSize, NULL);
CGColorRef cgColor = [UIColor greenColor].CGColor;
CGColorRef cgColor1 = [UIColor redColor].CGColor;
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
(id)ctSmallFont, (id)kCTFontAttributeName,
cgColor, (id)kCTForegroundColorAttributeName, nil];
NSDictionary *subattributes = [NSDictionary dictionaryWithObjectsAndKeys:
(id)ctBoldFont, (id)kCTFontAttributeName,
cgColor1, (id)kCTForegroundColorAttributeName, nil];
CFRelease(ctBoldFont);
NSString *subString=@"You must pay 4.00 dollar.";
NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithString:subString attributes:attributes];
[attrStr addAttributes:subattributes range:NSMakeRange(13,4)];
aTextLayer_.string=attrStr;
[self.view.layer addSublayer:aTextLayer_];
于 2013-01-21T07:31:25.580 に答える
1
を使用したくない場合は、 を使用することをUIWebView
お勧めしますNSAttributedString
。
コーナーケースとエラーチェックをあまり気にしない単純な実装は、次のようになります
NSString * string = @"You must pay 4.00 dollar";
NSString * pattern = @"You must pay (.+) dollar";
NSRegularExpression * regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:NULL];
NSArray * matches = [regex matchesInString:string options:0 range:NSMakeRange(0, string.length)];
NSRange priceRange = [matches[0] rangeAtIndex:1];
NSMutableAttributedString * attrString = [[NSMutableAttributedString alloc] initWithString:string];
[attrString addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:priceRange];
あなたのパターンは常にYou must pay (.+) dollar
. 異なる場合は、正規表現を調整して、NSRange
様式化する必要がある部分文字列を取得します。
次に、属性付きの文字列を を受け入れるもののコンテンツとして使用できます。NSAttributedString
たとえば、iOS 6 以降UILabel
のattributedText
プロパティがあるため、次のようなことができます。
yourLabel.attributedText = attrString;
于 2013-01-21T05:07:17.193 に答える
0
HTMLコードをUIWebViewに追加できます
[_webView loadHTMLString:@"<p>You must pay <font color=\"red\">4.00</font> dollar. </p> " baseURL:nil];
このコードを試してください
-----------------代替オプション--------------------------------
このテキスト形式を修正する場合 (XXXX.XXX ドルを支払う必要があります) より良い カスタム コンポーネントを作成します。
- UIView を拡張するクラスを作成する
- 異なるフォント色でUILableを追加
于 2013-01-21T04:17:06.677 に答える