5

更新: iOS 7 を実行している実際の iPhone 5 でこの問題が発生しました。詳細については近日中にお知らせします。

NSAttributedString が表示されない iOS 7 シミュレーターのバグを発見したと思います。他の誰かがこれをテストしてバグであることを確認できれば素晴らしいと思います。その後、Apple にバグを報告します。

問題は、NSAttributedString に NSUnderlineStyleAttributeName と NSParagraphStyleAttributeName を使用する組み合わせにあるようです。

再現する手順は次のとおりです。

1) Xcode 5 で、新しい「Single View Application」を作成します。何とでも呼んでください。

2) ViewController.m で、viewDidLoad メソッドを次のように置き換えます。

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSMutableParagraphStyle* paragraph = [[NSMutableParagraphStyle alloc] init];
    paragraph.alignment = NSTextAlignmentCenter;

    NSAttributedString* attrStr = [[NSAttributedString alloc] initWithString:@"Lorem ipsum dolor sit" attributes:
                                   @{NSUnderlineStyleAttributeName:@1,
                                     NSParagraphStyleAttributeName:paragraph}];

    UILabel* myLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 30, 0, 0)];
    myLabel.backgroundColor = [UIColor greenColor];
    myLabel.attributedText = attrStr;
    [myLabel sizeToFit];

    [self.view addSubview:myLabel];
}

3) iOS 7 デバイスで実行してから、iOS 7 シミュレーターで再度実行します。

4) 最後に、デプロイ ターゲットを iOS 6 に設定し、iOS 6 シミュレーターで実行します。

結果は次のようになります

  • iOS 7 デバイス: 正しく表示されます
  • iOS 7 シミュレーター: ラベルの背景のみを表示する
  • iOS 6 シミュレーター: 正しく表示される

スクリーンショット:

iOS7 デバイス

iOS 7 デバイス
iOS7 シミュレーター
iOS 7 シミュレーター

4

3 に答える 3

5

これはシミュレーターのバグではなく、iOS 7 のバグのようです。現在、デバイスで再現できています。ここで新しい質問を作成しました: iOS 7 BUG - NSAttributedString が表示されない

このバグは、NSUnderlineStyleAttributeName と NSParagraphStyleAttributeName を NSAttributedString の属性として使用する組み合わせのようです。

于 2013-10-01T23:48:35.693 に答える
2

問題の原因となっている次の行。

NSParagraphStyleAttributeName:段落

于 2013-09-25T06:35:46.550 に答える
0

これは私のために働いた

//Swift
let underlineAttribute = [NSUnderlineStyleAttributeName:NSNumber(int: 1)];
lblMessage.attributedText = NSAttributedString(string: "Your text", attributes: underlineAttribute)
//Am33t
于 2014-11-27T13:28:14.130 に答える