Ios 将UILabel与NSSuperscriptAttributeName和Autolayout对齐
我有一个带有三个标签的Ios 将UILabel与NSSuperscriptAttributeName和Autolayout对齐,ios,objective-c,autolayout,nsattributedstring,pure-layout,Ios,Objective C,Autolayout,Nsattributedstring,Pure Layout,我有一个带有三个标签的UITableViewCell: 右UILabel使用其attributedString属性添加化学式的下标和上标。我正在使用PureLayout设置所有自动布局约束,并为顶部的两个标签添加相同的约束,以管理到superView顶部的距离(contentView): 我还使用约束设置底部标签顶部和左侧标签底部之间的距离 但是,正如您所看到的,它们与顶部的距离不同,并且它们没有水平对齐。我猜这是因为超级和/或下标属性 我还尝试过对齐它们的水平轴: [rightLabel a
UITableViewCell
:
右UILabel
使用其attributedString属性添加化学式的下标和上标。我正在使用PureLayout
设置所有自动布局约束,并为顶部的两个标签添加相同的约束,以管理到superView顶部的距离(contentView
):
我还使用约束设置底部标签顶部和左侧标签底部之间的距离
但是,正如您所看到的,它们与顶部的距离不同,并且它们没有水平对齐。我猜这是因为超级和/或下标属性
我还尝试过对齐它们的水平轴:
[rightLabel autoAlignAxis: ALAxisHorizontal toSameAxisOfView: leftLabel];
但结果是一样的
有什么建议我可以使这项工作
编辑:这似乎与此错误有关:,并且仅发生在iOS 10.3中。如果我添加该问题的公认答案,则对齐情况与预期一致
编辑:以下是右标签的属性:
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;
}
CH{
NSBaselineOffset=1;
NSFont=“font-family:\“Avenir Medium\”字体大小:正常;字体样式:正常;字体大小:17.00pt”;
}3{
NSBaselineOffset=1;
NSFont=“font-family:\“Avenir Medium\”字体大小:正常;字体样式:正常;字体大小:12.75pt”;
NSSuperScript=“-1”;
}CH{
NSBaselineOffset=1;
NSFont=“font-family:\“Avenir Medium\”字体大小:正常;字体样式:正常;字体大小:17.00pt”;
}2{
NSBaselineOffset=1;
NSFont=“font-family:\“Avenir Medium\”字体大小:正常;字体样式:正常;字体大小:12.75pt”;
NSSuperScript=“-1”;
}噢{
NSBaselineOffset=1;
NSFont=“font-family:\“Avenir Medium\”字体大小:正常;字体样式:正常;字体大小:17.00pt”;
}+{
NSBaselineOffset=1;
NSFont=“font-family:\“Avenir Medium\”字体大小:正常;字体样式:正常;字体大小:12.75pt”;
NS上标=1;
}
您可以尝试对两个顶部标签使用UIStackview,对齐方式均为.center
或者只需将正确的标签与匹配的插图固定在一起。
印刷术是一门艺术
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;
}