@artursk

Как выравнять левый край title по центру кнопки?

Есть кнопки, в которых имеются картинки и тайтлы. Тайтлы с разным количеством символов. Так как изначально тайтл можно установить по левому краю кнопки, правому краю и середине кнопки, то из за разной длины тайтла в кнопках текст отображается не ровно относительно друг друга, что влечет за собой и смещение картинок

Пытаюсь выравнить текст и картинку каждой кнопки в сториборде методом тыка подгоняя по мм

но на одном размере телефона отображается идеально ровно, а на других размерах все плывет... Логично было бы привязать левый край тайтла в каждой кнопке к середине кнопки , а не весь тайтл к середине... Подскажите, как можно сделать? Или какие-нибудь др варианты есть?

Скриншоты к вопросу по ссылке, ТК вопрос публикую с мобилы, не могу загрузить скрины: https://forum.swiftbook.ru/t/kak-vyravnit-levyj-kr...
  • Вопрос задан
  • 472 просмотра
Решения вопроса 1
f0r3s1
@f0r3s1
iOS Developer
Ответ выше, как я считаю это kostilMaking...
У меня реализовано вот так:

- (void)makeContentButtons:(UIButton *)button {
    button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
    button.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
    button.contentEdgeInsets = UIEdgeInsetsMake(0, 70, 0, 0);
}


Этот код задает выравнивание по левому краю и двигает тайтл вправо на 70 флоатов.
В твоем случае, можно брать длину кнопки и делить его напополам, и у тебя будет центр кнопки, который ты впишешь вместо моих "70".

Скрин сториборда прилагаю, ну и расположения элементов тоже:
c5e49c19ad2246ebbd0c4b850a669c84.png02392c1d9c5b4b2ba4006d087b1d7d8a.png
Синим выделена UIButton, текст на ней UIButtonLabel, картинка это простой UIImageView
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ManWithBear
@ManWithBear
Swift Adept, Prague
Не совсем уверен что у вас там.
Но первое что приходит в голову, это отказаться от кнопок, запихнуть туда таблицу, нормально построить клетки, и ловить нажатие уже на клетки таблицы.
Ещё вариант кастомные кнопки со своим лейаутом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы