Привет, свифтеры🙂
Сегодня мы вводим на канал новую рубрику #MockInterview, которая даст вам возможность потренироваться отвечать на технические вопросы и даже подготовит к предстоящим собеседованиям.
В этой рубрике мы будем задавать вам вопросы, которые касаются программирования на Swift, чтобы вы в процессе ответа вспомнили давно известную вам информацию, а также могли узнать много нового.
Естественно, мы тоже будем отвечать на заданные вопросы и объясним, почему ответы именно такие. Но постарайтесь не подглядывать в ответ сразу, сначала поразмыслите над вопросом сами😉
Сегодня мы вводим на канал новую рубрику #MockInterview, которая даст вам возможность потренироваться отвечать на технические вопросы и даже подготовит к предстоящим собеседованиям.
В этой рубрике мы будем задавать вам вопросы, которые касаются программирования на Swift, чтобы вы в процессе ответа вспомнили давно известную вам информацию, а также могли узнать много нового.
Естественно, мы тоже будем отвечать на заданные вопросы и объясним, почему ответы именно такие. Но постарайтесь не подглядывать в ответ сразу, сначала поразмыслите над вопросом сами😉
#MockInterview
Вопрос: Можно ли получить доступ к private свойству внутри extension? 💬
Ответ: Да, мы можем получить доступ к private свойству внутри extension, но только при условии, что это extension находится внутри одного и того же файла, что и class, struct или enum. Если мы попытаемся расширить тип данных за пределами файла, private свойства доступны не будут.
Объяснение: Расширения, которые находятся в том же файле, что и class, struct или enum, которые они расширяют, ведут себя так, как если бы код в extension был написан как часть самого исходного типа.
В результате мы можем:
- Объявить private свойство в самом типе и достучаться к этому свойству из расширений в том же файле.
- Объявить private свойство в одном расширении и получите доступ к этому свойству из другого расширения в том же файле.
- Объявить private свойство в расширении и получите доступ к этому свойству из самого типа в том же файле.
#accessControl #basic
Вопрос: Можно ли получить доступ к private свойству внутри extension? 💬
Ответ: Да, мы можем получить доступ к private свойству внутри extension, но только при условии, что это extension находится внутри одного и того же файла, что и class, struct или enum. Если мы попытаемся расширить тип данных за пределами файла, private свойства доступны не будут.
Объяснение: Расширения, которые находятся в том же файле, что и class, struct или enum, которые они расширяют, ведут себя так, как если бы код в extension был написан как часть самого исходного типа.
В результате мы можем:
- Объявить private свойство в самом типе и достучаться к этому свойству из расширений в том же файле.
- Объявить private свойство в одном расширении и получите доступ к этому свойству из другого расширения в том же файле.
- Объявить private свойство в расширении и получите доступ к этому свойству из самого типа в том же файле.
#accessControl #basic
#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
Вопрос: Как можно увеличить зону нажатия в UIButton, чтобы соответствовать HIG? 💬
Ответ: Есть два способа решения этой задачи. Первый – это использование contentEdgeInsets. Больше размер = больше зона нажатия. В этом подходе важно учитывать, что мы просто увеличиваем размер кнопки. Если у нас есть заданный frame или же установленные constraint, то UIButton будет просто сжимать текст / изображение, и эффекта это не даст.
Второй подход – сделать свой наследник UIButton и переопределить point-inside метод. Это позволит нам увеличить зону нажатия без изменения самого размера кнопки. Правда, если кнопка вложенная в какой-то parent view, то увеличить зону нажатия за его пределы не выйдет.
Объяснение: Вопрос очень базовый, но почему-то всех всегда сбивает с толку слово HIG. А это просто аббревиатура Human Interface Guidelines, где Apple пишет, что ваша кнопка должна быть минимум 44 пикселя (кстати, запомните это число, некоторые компании умудряются задавать даже такой вопрос).
По сути, подхода для решения поставленной задачи два. Если нужно увеличить зону, и есть возможность быстро поменять размер кнопки, – contentEdgeInsets. Если ситуация сложнее, например, кнопка в UIStackView, – наследование и переопределение point(point:with).
#UIButton #basic