Alterar a largura de um controle segmentado com base nos títulos de cada segmento?

Começa assim, o que eu gosto:

Mas então eu adiciono um segmento e isso acontece:
 A largura é definida no IB, não no código.

Tudo o que preciso é um método para calcular a largura na hora. No final, faria algo assim:

control.width = (labelWidths + marginWidths);
// where marginWidths = (marginWidth * control.numberOfSegments)

questionAnswers(4)

yourAnswerToTheQuestion