Starts like this, which I like:

But then I add a segment and this happens:

The width is set in IB, not in code.
All I need is a method to calculate width on the fly. At the end, it would do something like this:
control.width = (labelWidths + marginWidths);
// where marginWidths = (marginWidth * control.numberOfSegments)
The method in prgrmr’s answer here works fine for its intended purpose, but this is not it.
Rather than adding unnecessary overhead with custom UILabel subviews,
I’ve modified the example code in the above link to come up with this: