4

我目前正在尝试实现一个 UISegmentedControl,它使用与边框不同的文本颜色,但也跨越多行。

我已经设法使用这个问题来分别工作

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 ,但这也不起作用。

有谁知道我如何实现这一目标?

4

0 回答 0