4

I'm currently trying to implement a UISegmentedControl that uses a different text color to the border but also spans over multi lines.

I've managed to get both work separately using this question for multiline

Two lines of text in a 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]];
        }
    }  
}

and using the Appearance proxy for the text color:

     [ [UISegmentedControl appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor redColor]} forState:UIControlStateNormal  ];

However as soon as I combine both solutions, I lose the multiline abilities! I've tried putting the code in different orders so I loop through the labels after using the appearance proxy but that doesn't work. I've also tried using a custom NSParagraphStyle with a lineBreakingMode of NSLineBreakByWorkWrapping but this doesn't work either.

Does anyone have an idea of how I could achieve this?

Community
  • 1
  • 1
TommyBs
  • 9,354
  • 4
  • 34
  • 65

0 Answers0