tgoop.com/BlogSwift/40
Last Update:
#MockInterview
Вопрос: Как можно увеличить зону нажатия в UIButton, чтобы соответствовать HIG? 💬
Ответ: Есть два способа решения этой задачи. Первый – это использование contentEdgeInsets. Больше размер = больше зона нажатия. В этом подходе важно учитывать, что мы просто увеличиваем размер кнопки. Если у нас есть заданный frame или же установленные constraint, то UIButton будет просто сжимать текст / изображение, и эффекта это не даст.
Второй подход – сделать свой наследник UIButton и переопределить point-inside метод. Это позволит нам увеличить зону нажатия без изменения самого размера кнопки. Правда, если кнопка вложенная в какой-то parent view, то увеличить зону нажатия за его пределы не выйдет.
Объяснение: Вопрос очень базовый, но почему-то всех всегда сбивает с толку слово HIG. А это просто аббревиатура Human Interface Guidelines, где Apple пишет, что ваша кнопка должна быть минимум 44 пикселя (кстати, запомните это число, некоторые компании умудряются задавать даже такой вопрос).
По сути, подхода для решения поставленной задачи два. Если нужно увеличить зону, и есть возможность быстро поменять размер кнопки, – contentEdgeInsets. Если ситуация сложнее, например, кнопка в UIStackView, – наследование и переопределение point(point:with).
#UIButton #basic
BY SWIFTER | Блог про Swift

Share with your friend now:
tgoop.com/BlogSwift/40