Ich habe ein UITableViewCell
mit drei Labels:Aligning UILabel mit NSSuperscriptAttributeName und Autolayout
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;
}
Ich werde bei Versuch geben, danke für das Aufzeigen. – Koen