Моя практика состоит в том, чтобы создать индивидуальный фон, а затем использовать его с разными названиями. Это работает очень хорошо, так как UIButton предназначен для настройки.
Когда заголовки имеют разную длину, вы можете автоматически растягивать фоновое изображение до размера.
Пример:
// button-bg.png has size 30x60
UIImage* image = [[UIImage imageNamed:@"button-bg.png"] stretchableImageWithLeftCapWidth:15 topCapHeight:0];
[button setBackgroundImage:image forState:UIControlStateNormal];
Кроме того, вы можете добавить изображение на передний план и настроить шрифт, цвет и относительное положение заголовка для различных состояний.