Ответ
UIKit — это основной фреймворк для построения пользовательских интерфейсов в iOS и tvOS. Его ключевые компоненты можно разделить на несколько категорий:
Базовые классы:
UIView— базовый прямоугольный элемент, на котором строится весь интерфейс.UIViewController— управляет группой представлений (UIView), обрабатывает логику экрана и его жизненный цикл.UIResponder— базовый класс для объектов, которые могут обрабатывать и реагировать на события (касания, встряхивания, команды с клавиатуры).
Основные элементы управления (Controls):
UIControl— базовый класс для интерактивных элементов.UIButton— кнопка, выполняющая действие при нажатии.UILabel— отображение статического текста.UITextField— однострочное поле для ввода и редактирования текста.UISwitch,UISlider,UIStepper— элементы для выбора значений.
Контейнеры и навигация:
UIScrollView— базовый класс для отображения прокручиваемого контента.UITableView/UICollectionView— высокооптимизированные компоненты для отображения прокручиваемых списков и сеток данных.UIStackView— контейнер для автоматического расположения представлений в строку или колонку.UINavigationController— управляет стеком контроллеров для иерархической навигации.UITabBarController— управляет переключением между независимыми разделами приложения.
Пример создания кнопки и добавления её на экран:
// 1. Создание кнопки системного стиля
let button = UIButton(type: .system)
// 2. Установка заголовка
button.setTitle("Нажми меня", for: .normal)
// 3. Установка позиции и размера (используя Auto Layout)
button.translatesAutoresizingMaskIntoConstraints = false
// 4. Добавление обработчика нажатия
button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
// 5. Добавление кнопки в иерархию представлений
view.addSubview(button)
// 6. Активация констрейнтов для позиционирования
NSLayoutConstraint.activate([
button.centerXAnchor.constraint(equalTo: view.centerXAnchor),
button.centerYAnchor.constraint(equalTo: view.centerYAnchor)
])
@objc func buttonTapped() {
print("Кнопка была нажата")
} Ответ 18+ 🔞
А, UIKit, блядь! Ну, это как бы наш старый добрый дедушка, на котором всё держится в айфонах и теликах. Без него нихуя не соберёшь, если, конечно, не пошёл в эту новомодную хуйню SwiftUI, но это другая история, в рот меня чих-пых.
Смотри, тут всё просто, но дохуя всего. Разложим по полочкам, как нормальные люди.
Базовые кирпичи, с них всё начинается:
UIView— это просто прямоугольник, ёпта. Всё, что ты видишь на экране — кнопка, текст, картинка — это либо он сам, либо его дети. Фундамент, блядь.UIViewController— это главный по тарелке. У него своя жизнь: родился, показался, свернулся, помер. Он командует этими вьюхами, логику пихает, в общем, мозг экрана.UIResponder— а это типа ушастый. Всё, что от него наследуется, может слышать: тыкнули пальцем, тряхнули телефон, клаву нажали — он это поймает.
Всякие штуки, на которые можно тыкать (Controls):
UIControl— папа всех кликабельных прибамбасов.UIButton— ну, кнопка, сука, что тут объяснять? Тыкнул — что-то произошло.UILabel— просто текст. Поставил и забыл. Не кликается, нихуя.UITextField— поле, куда юзер свой бред вводит. Одна строчка.UISwitch,UISlider,UIStepper— разные ползунки и переключатели, чтобы значения выбирать. Удобно, бля.
Коробки, в которые всё это складывают, и как по ним ходить:
UIScrollView— волшебное окно. Контента дохуя, а экран маленький? Засунь в него — и можно скроллить туда-сюда. Основа основ.UITableView/UICollectionView— это, блядь, мастодонты. Списки и сетки. Если нужно показать сто пятьсот сообщений или фоток — они справятся, не вспотев. Оптимизированы так, что мама не горюй.UIStackView— ленивая жопа. Не хочешь вручную расставлять вьюхи? Кидай в него — он сам ровненько в ряд или столбик выстроит. Красота.UINavigationController— начальник этажей. У тебя есть экран, с него переходишь на другой, потом на третий. Он запоминает этот стек и кнопку «Назад» рисует. Классика.UITabBarController— начальник отделов. Внизу панелька с иконками, тыкаешь — переключаешься между совершенно независимыми разделами приложения. Инстаграм там, вот это всё.
А теперь, сука, смотри, как кнопку из говна и палок собрать:
// 1. Берём кнопку, самую обычную, системную
let button = UIButton(type: .system)
// 2. Пишем на ней что-нибудь умное
button.setTitle("Нажми меня", for: .normal)
// 3. Говорим: "Не вздумай сам себе рамки лепить, я тебя сам размещу!"
button.translatesAutoresizingMaskIntoConstraints = false
// 4. Цепляем на неё ухо: "Когда тебя ткнут, вызови вот этот метод!"
button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
// 5. Вываливаем эту кнопку на главный экран (view)
view.addSubview(button)
// 6. И вот тут магия: говорим, чтоб она встала ровно по центру. Автолейаут, ёпта!
NSLayoutConstraint.activate([
button.centerXAnchor.constraint(equalTo: view.centerXAnchor),
button.centerYAnchor.constraint(equalTo: view.centerYAnchor)
])
// А это та самая функция, которую вызовут, когда кнопку ёбнут
@objc func buttonTapped() {
print("Кнопка была нажата, ебать!")
}
Вот и вся магия, блядь. Сначала кажется, что дохуя сложно, а потом привыкаешь и как по маслу. Главное — начать с этих кирпичей, а не пытаться сразу Эйфелеву башню собирать.