webentwicklung-frage-antwort-db.com.de

Verwenden von 'attributed' Beschriftungstext im Interface Builder

Ich versuche, auf die Verwendung von NSAttributedString in meinem viewController zu verzichten, und beschließe, die Option 'Attributed' (wie "Plain") im "Text" -Feld des Attributinspektors für ein UILabel zu verwenden.

Ich habe die einzelnen Wörter ausgewählt, die ich zuordnen möchte, und deren Schriftart geändert. Dies wird im Textvorschaufenster und in den Szenen in IB korrekt wiedergegeben:

enter image description here

Der Simulator berücksichtigt diese Änderungen jedoch nicht. Es scheint, als würde zur Laufzeit die für die Attribute angegebene Schriftart nicht verwendet werden (wenn ich eine Farbe ändere, funktioniert dies wie erwartet). Ich habe die Fonts meinem Projekt und meiner Plist vergebens hinzugefügt:

enter image description here

Ich habe keine Dokumentation zu diesem Feature gefunden, und es könnte sehr ähnlich sein wie die 'Textstile'-Funktion in IB (im Moment völlig nutzlos) - wollte aber nur wissen, ob jemand in der Vergangenheit etwas Glück gehabt hatte.

Jede Hilfe oder Anregung ist dankbar.

Edit 03/07/15 Nun, ich freue mich, Ihnen mitteilen zu können, dass dieses Problem in Xcode 7 (noch in der Beta) gelöst wurde. So können wir dieses Thema endlich zur Ruhe bringen. Vielen Dank an alle, die versucht haben, dies zusammen mit mir herauszufinden.

32
Kyle Gillen

In Xcode 7.0 Beta: Ich habe festgestellt, dass dies funktioniert.

Storyboard: http://imgur.com/Wb5H4ds

Ausgabe:

http://imgur.com/iOV8tJF

ODER . Sie können dies dynamisch tun.

-(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

Problem mit Schriftarten Problemumgehung: Clean/Clean-Buildordner. Manchmal hilft help ./UPDATE: Ich weiß, das klingt nach einem "dummen Rat" - aber es hat einen Trick in meinem Fall gemacht, also hier posten - um jemandem Zeit zu sparen.

1

das hat eine einfache und schnelle Lösung, und das ist in meinem Fall die Arbeit.

für Textansichten

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

für Etiketten

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

und für den Rest von UiView so zwei ☝️

0