TextViewの書式設定はiOS 6では正常に機能しましたが、iOS 7では機能しなくなりました。TextKitを使用すると、内部の多くのものが変更されたことがわかります。それは非常に紛らわしいものになっており、私は誰かがこれと同じくらい簡単なことで私を助けることによって少しそれをまっすぐにするのを手伝ってくれることを望んでいます。
私の静的UITextViewには、元々textColor
およびtextAlignment
プロパティの値が割り当てられていました。それからNSMutableAttributedString
を作成し、それに属性を割り当て、それをtextViewのattributedText
プロパティに割り当てました。位置合わせと色は、iOS 7では有効になりません。
どうすれば修正できますか?これらのプロパティが効果を発揮しない場合、なぜそれらはもはや存在するのでしょうか? textViewの作成は次のとおりです。
UITextView *titleView = [[UITextView alloc]initWithFrame:CGRectMake(0, 90, 1024, 150)];
titleView.textAlignment = NSTextAlignmentCenter;
titleView.textColor = [UIColor whiteColor];
NSMutableAttributedString *title = [[NSMutableAttributedString alloc]initWithString:@"Welcome"];
UIFont *font = [UIFont fontWithName:@"Avenir-Light" size:60];
[title addAttribute:NSParagraphStyleAttributeName value:font range:NSMakeRange(0, title.length)];
titleView.attributedText = title;
[self.view addSubview:titleView];
奇妙なことに、プロパティはUILabel
については考慮されますが、UITextView
については考慮されません
フォントを使用する方法と同様に、属性付き文字列に色と配置の属性を追加しないのはなぜですか?
何かのようなもの:
NSMutableAttributedString *title = [[NSMutableAttributedString alloc]initWithString:@"Welcome"];
UIFont *font = [UIFont fontWithName:@"Avenir-Light" size:60];
[title addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, title.length)];
//add color
[title addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, title.length)];
//add alignment
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setAlignment:NSTextAlignmentCenter];
[title addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, title.length)];
titleView.attributedText = title;
編集:最初にテキストを割り当ててから、プロパティとこの方法で変更します。
UITextView *titleView = [[UITextView alloc]initWithFrame:CGRectMake(0, 90, 1024, 150)];
//create attributed string and change font
NSMutableAttributedString *title = [[NSMutableAttributedString alloc]initWithString:@"Welcome"];
UIFont *font = [UIFont fontWithName:@"Avenir-Light" size:60];
[title addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, title.length)];
//assign text first, then customize properties
titleView.attributedText = title;
titleView.textAlignment = NSTextAlignmentCenter;
titleView.textColor = [UIColor whiteColor];