我目前正在尝试实现一个 UISegmentedControl,它使用与边框不同的文本颜色,但也跨越多行。
我已经设法使用这个问题来分别工作
for (id segment in [self.segmentedControl subviews]) {
for (id label in [segment subviews]) {
if ([label isKindOfClass:[UILabel class]]) {
UILabel *titleLabel = (UILabel *) label;
titleLabel.numberOfLines = 0;
[titleLabel setTextColor:[UIColor redColor]];
}
}
}
并使用外观代理作为文本颜色:
[ [UISegmentedControl appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor redColor]} forState:UIControlStateNormal ];
但是,一旦我将这两种解决方案结合起来,我就会失去多线能力!我尝试将代码按不同的顺序放置,因此我在使用外观代理后循环遍历标签,但这不起作用。我也尝试过使用带有 NSLineBreakByWorkWrapping 的 lineBreakingMode 的自定义 NSParagraphStyle ,但这也不起作用。
有谁知道我如何实现这一目标?