web-dev-qa-db-ja.com

Interface Builderで「属性」ラベルテキストを使用する

ViewControllerでNSAttributedStringを使用するのをやめようとしています。UILabelの属性インスペクターの「text」フィールドで「Attributed」オプション(「Plain」と同じ)を使用することを選択しています。

属性にしたい個々の単語を選択し、フォントを変更しました。これは、テキストプレビューウィンドウとIB自体のシーンに正しく反映されます。

enter image description here

ただし、シミュレータはこれらの変更を反映せず、実行時に属性に指定されたフォントが使用されていないように見えます(色を変更すると、期待どおりに機能します)。フォントをプロジェクトとplistに追加しましたが、使用できません。

enter image description here

この機能に関するドキュメントは見つかりませんでしたが、それはIBの「テキストスタイル」機能と非常によく似ています(今のところ本質的には役に立たない)。

どんな助けや提案も大歓迎です、ありがとう。

編集03/07/15さて、この問題がXcode 7で最終的に解決されたことを報告できて嬉しいです(まだベータ版です)。したがって、この問題を最終的に解決することができます。私と一緒にこれを理解しようとしたすべての人に感謝します。

32
Kyle Gillen

Xcode 7.0ベータ版:これは機能していることがわかりました。

ストーリーボード: http://imgur.com/Wb5H4ds

出力:

http://imgur.com/iOV8tJF

[〜#〜] or [〜#〜]。動的に行うことができます。

-(void)attributedText{
UITextView *textView = [[UITextView alloc]initWithFrame:CGRectMake(20, 100, 200, 44)];

NSString *newsTitle = @"Hello";
NSString *sportTtle = @"World";
NSString *title = [NSString stringWithFormat:@"%@ %@", newsTitle,sportTtle];
textView.text = title;

UIColor *color = [UIColor redColor];
UIFont *font = [UIFont fontWithName:@"Arial" size:20.0];

NSDictionary *attrs = @{NSForegroundColorAttributeName : color,NSFontAttributeName:font};

NSMutableAttributedString * attrStr = [[NSMutableAttributedString alloc] initWithAttributedString:textView.attributedText];
[attrStr addAttributes:attrs range:[textView.text rangeOfString:sportTtle]];
textView.attributedText = attrStr;
[self.view addSubview:textView];
}
2
Jamil

フォントの問題。これの回避策:clean/clean build folder。時々助けます。/UPDATE:これは「愚かなアドバイス」のように聞こえますが、私の場合はトリックになったので、ここに投稿します-多分誰かの時間を節約するために。

1

それはシンプルで素早い解決策であり、私の場合はうまくいきます。その解決策は、AppDelegate.SwiftファイルのdidFinishLaunchingWithOptions funcにコード行を追加することです。

textViewsの場合

UITextView.appearance().font = UIFont(name: "IranSans", size: 17)

ラベル用

UILabel.appearance().font = UIFont(name: "IranSans", size: 17)

そして、この2つのようなUiViewの残りのためにfor️

0