Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Swift : frame, bounds, coordinate, system

В чём разница между frame и bounds?

Вопрос проверяет знание базовых координатных систем UIView и поведения размеров/позиции.

Короткий ответ

frame — это прямоугольник в системе координат супервью (позиция и размер).
bounds — прямоугольник в собственной координатной системе вью (обычно origin=(0,0), размер тот же).

Изменяя bounds.origin, вы как бы «скроллите» содержимое, а frame влияет на расположение самой вью в супервью.

Длинный ответ

frame:

  • Описание: CGRect относительно родительского вью.

  • Используется для установки внешней позиции и размера.

bounds:

  • Описание: CGRect в собственной системе координат.

  • По умолчанию origin = .zero.

  • bounds.size обычно совпадает с frame.size, но bounds.origin может смещаться (для прокрутки).

Пример:

subview.frame = CGRect(x: 20, y: 50, width: 100, height: 100)
// subview находится отступом 20,50 внутри супервью

scrollView.bounds.origin.y = 200
// «скролл» содержимого scrollView на 200 по вертикали

Влияние на отрисовку:

  • При изменении bounds.origin содержимое смещается визуально.

  • frame изменение перерисовывает вью в новом месте.

Вывод:
frame отвечает за положение в иерархии, а bounds — за локальные координаты и прокрутку содержимого.

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    5

Навыки

  • Swift

    Swift

Ключевые слова

#frame

#bounds

#coordinate

#system

Подпишись на iOS Developer в телеграм

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.