J'ai un UITableViewCell
avec trois étiquettes:Harmoniser UILabel avec NSSuperscriptAttributeName et Autolayout
Le droit UILabel
utilise sa propriété attributedString pour ajouter les indices et des exposants la formule chimique. J'utilise PureLayout
pour mettre en place toutes les contraintes autolayout et a ajouté la même contrainte pour les deux premières étiquettes pour gérer la distance au sommet du Superview (contentView
):
[label autoPinEdgeToSuperviewEdge: ALEdgeTop withInset: 8.0f];
J'utilise aussi une contrainte pour définir la distance entre le haut de l'étiquette du bas et le bas de l'étiquette de gauche. Cependant, comme vous pouvez le voir, ils n'ont pas la même distance vers le haut, et ils ne sont pas alignés horizontalement. Je suppose que c'est à cause des attributs super- et/ou en indice.
J'ai aussi essayé d'aligner leurs axes horizontaux:
[rightLabel autoAlignAxis: ALAxisHorizontal toSameAxisOfView: leftLabel];
Mais avec le même résultat.
Des suggestions comment je peux faire ce travail?
EDIT: Cela semble être lié à ce bogue: iOS 10.3: NSStrikethroughStyleAttributeName is not rendered if applied to a sub range of NSMutableAttributedString, et se produit uniquement dans iOS 10.3. Si j'ajoute la réponse acceptée à partir de cette question, l'alignement est comme prévu.
EDIT: Ce sont les attributs de l'étiquette droite:
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;
}
Je vais donner à essayer, merci de le signaler. – Koen