Make a segment of a segmented control invisible

Though it seems there is no way to hide a segment in a segment control, you could remove a segment from the segment control using removeSegmentAtIndex:animated: method. You need either insertSegmentWithImage:atIndex:animated: or insertSegmentWithTitle:atIndex:animated: method to insert the segment again.

Instead of hiding/showing a segment you could consider enabling/disabling it using setEnabled:forSegmentAtIndex: method.


You can't hide it but you can make its width very very small which will make it invisible for the user. It has to be > 0 because 0 = automatic width.

[yourSegmentedControl setWidth:0.1 forSegmentAtIndex:1];

To be in the safe side, also disable it to reduce the chance of selection to zero.

[mapTypeSC setEnabled:NO forSegmentAtIndex:1];