Если я помещу в изображение только изображение и установлю imageEdgeInsets ближе к верху, изображение останется центрированным, и все будет работать как положено:
[button setImage:image forState:UIControlStateNormal];
[button setImageEdgeInsets:UIEdgeInsetsMake(-15.0, 0.0, 0.0, 0.0)];
Если я помещу только текст в кнопку и установлю titleEdgeInsets ближе к основанию, текст останется центрированным, и все будет работать как положено:
[button setTitle:title forState:UIControlStateNormal];
[button setTitleEdgeInsets:UIEdgeInsetsMake(0.0, 0.0, -30, 0.0)];
Но, если я соединю 4 строки, текст будет мешать изображению, и оба потеряли выравнивание по центру.
Все мои изображения имеют ширину 30 пикселей, и если я добавлю 30 в левый параметр UIEdgeInsetMake для setTitleEdgeInsets, текст снова будет центрирован. Проблема в том, что изображение никогда не центрируется, потому что кажется, что оно зависит от размера button.titleLabel. Я уже пробовал много вычислений с размером кнопки, размером изображения, размером titleLabel и никогда не получал идеальное центрирование.
У кого-то уже была такая же проблема?