0

Ich habe ein UITableViewCell mit drei Labels:Aligning UILabel mit NSSuperscriptAttributeName und Autolayout

enter image description here

Das Recht UILabel seine attributedString Eigenschaft nutzt die Tief- und Hoch für die chemische Formel hinzuzufügen. Ich verwende PureLayout alle automatische Layout Einschränkungen einzurichten und fügte die gleiche Einschränkung für die oberen zwei Etikett um den Abstand zu der Spitze des superview (contentView) zu verwalten:

[label autoPinEdgeToSuperviewEdge: ALEdgeTop withInset: 8.0f]; 

I auch eingestellt mit einem Constraint bin Abstand zwischen dem oberen Rand des unteren Etiketts und dem unteren Rand des linken Etiketts.

Wie Sie jedoch sehen können, haben sie nicht den gleichen Abstand zur Oberseite, und sie sind nicht horizontal ausgerichtet. Ich vermute, das liegt an den super- und/oder tiefgestellten Attributen.

ich auch ihre horizontalen Achsen versucht haben, Ausrichtung:

[rightLabel autoAlignAxis: ALAxisHorizontal toSameAxisOfView: leftLabel]; 

aber mit dem gleichen Ergebnis.

Irgendwelche Vorschläge, wie ich das schaffen kann?

EDIT: Dies scheint mit diesem Fehler zu tun: iOS 10.3: NSStrikethroughStyleAttributeName is not rendered if applied to a sub range of NSMutableAttributedString, und passiert nur in iOS 10.3. Wenn ich die akzeptierte Antwort von dieser Frage hinzufüge, ist die Ausrichtung wie erwartet.

EDIT: Dies sind die Attribute für das richtige Label:

CH{ 
    NSBaselineOffset = 1; 
    NSFont = "<UICTFont: 0x7fcdc2515a10> font-family: \"Avenir-Medium\"; font-weight: normal; font-style: normal; font-size: 17.00pt"; 
}3{ 
    NSBaselineOffset = 1; 
    NSFont = "<UICTFont: 0x7fcdc27577e0> font-family: \"Avenir-Medium\"; font-weight: normal; font-style: normal; font-size: 12.75pt"; 
    NSSuperScript = "-1"; 
}CH{ 
    NSBaselineOffset = 1; 
    NSFont = "<UICTFont: 0x7fcdc2515a10> font-family: \"Avenir-Medium\"; font-weight: normal; font-style: normal; font-size: 17.00pt"; 
}2{ 
    NSBaselineOffset = 1; 
    NSFont = "<UICTFont: 0x7fcdc27577e0> font-family: \"Avenir-Medium\"; font-weight: normal; font-style: normal; font-size: 12.75pt"; 
    NSSuperScript = "-1"; 
}OH{ 
    NSBaselineOffset = 1; 
    NSFont = "<UICTFont: 0x7fcdc2515a10> font-family: \"Avenir-Medium\"; font-weight: normal; font-style: normal; font-size: 17.00pt"; 
}+{ 
    NSBaselineOffset = 1; 
    NSFont = "<UICTFont: 0x7fcdc27577e0> font-family: \"Avenir-Medium\"; font-weight: normal; font-style: normal; font-size: 12.75pt"; 
    NSSuperScript = 1; 
} 

Antwort

0

Sie können versuchen, mit Ausrichtung = .center oder genau richtig Label Pin mit passendem Einsatz UIStackview für beide Top-Labels zu verwenden. Typografie ist hard.

+0

Ich werde bei Versuch geben, danke für das Aufzeigen. – Koen

Verwandte Themen