Adaptivity and Layout

Adaptivity and Layout

People generally want to be able to use their favorite apps on all of their devices and in any context. In iOS, interface elements and layouts can be configured to automatically change shape and size on different devices, during multitasking on iPad, in split view, when the screen is rotated, and more. It’s essential that you design an adaptable interface that provides a great experience in any environment.

사람들은 일반적으로 좋아하는 앱을 모든 기기 및 모든 환경에서 사용할 수 있기를 바랍니다. iOS에서 인터페이스 요소 및 레이아웃은 iPad에서 멀티태스킹 중, 분할 보기, 화면이 회전할 때 등의 다양한 장치에서 모양과 크기를 자동으로 변경하도록 구성할 수 있습니다. 어떤 환경에서도 훌륭한 경험을 제공하는 적응형 인터페이스를 설계하는 것이 중요합니다.

Device Screen Sizes and Orientations

iOS devices come in a variety of screen sizes and can be used in either portrait or landscape orientation.

iOS 기기는 다양한 화면 크기로 제공되며 세로 또는 가로 방향으로 사용할 수 있습니다.

To learn how screen resolution impacts your app’s artwork, see Image Size and Resolution.

Auto Layout

Auto Layout is a development tool for constructing adaptive interfaces. Using Auto Layout, you can define rules (known as constraints ) that govern the content in your app. For example, you can constrain a button so it’s always horizontally centered and positioned 8 points below an image, regardless of the available screen space.

오토 레이아웃은 적응 형 인터페이스를 구성하기위한 개발 도구입니다. 오토 레이아웃을 사용하면 앱의 컨텐츠를 제어하는 ​​규칙 (constraints 라고 알려진)을 정의 할 수 있습니다. 예를 들어 사용 가능한 화면 공간에 관계없이 이미지를 수평 중앙에 8 포인트 아래로 배치 할 수 있도록 버튼을 구속 할 수 있습니다.

Auto Layout automatically readjusts layouts according to the specified constraints when certain environmental variations (known as traits ) are detected. You can set your app to dynamically adapt to a wide range of traits, including:

오토 레이아웃은 특정 환경 변화 (traits 라고도 함)가 감지되면 지정된 구속 조건에 따라 레이아웃을 자동으로 재조정합니다. 다음과 같은 다양한 특성에 동적으로 적응하도록 앱을 설정할 수 있습니다.

  • Different device screen sizes, resolutions, and color gamuts (sRGB/P3)

  • Different device orientations (portrait/landscape)

  • Split view

  • Multitasking modes on iPad

  • Dynamic Type text-size changes

  • Internationalization features that are enabled based on locale (left-to-right/right-to-left layout direction, date/time/number formatting, font variation, text length)

  • System feature availability ( 3D Touch )

For developer guidance, see Auto Layout Guide and UITraitCollection.

Layout Guides and Safe Area

Layout guides define rectangular regions that don’t actually appear visibly onscreen, but aid with the positioning, alignment, and spacing of content. The system includes predefined layout guides that make it easy to apply standard margins around content and restrict the width of text for optimal readability. You can also define custom layout guides.

레이아웃 가이드는 화면 상에 실제로 보이지 않는 직사각형 영역을 정의하지만 컨텐츠의 위치, 정렬 및 간격을 보조합니다. 이 시스템에는 미리 정의 된 레이아웃 가이드가 포함되어 있어 컨텐츠 주위에 표준 여백을 쉽게 적용하고 텍스트의 폭을 제한하여 가독성을 극대화합니다. 사용자 정의 레이아웃 가이드를 정의 할 수도 있습니다.

Adhere to the safe area and layout margins defined by UIKit. These layout guides ensure appropriate insetting based on the device and context. The safe area also prevents content from underlapping the status bar, navigation bar, toolbar, and tab bar. Standard system-provided views automatically adopt a safe area layout guide.

UIKit에서 정의한 안전 영역 및 레이아웃 여백을 준수합니다. 이러한 레이아웃 가이드는 장치 및 컨텍스트에 따라 적절한 삽입을 보장합니다. 안전 영역은 내용이 상태바, 네비게이션바, 툴바 및 탭바에 밑줄을 긋지 못하게합니다. 표준 시스템 제공 뷰는 자동으로 안전 영역 레이아웃 가이드를 채택합니다.

For developer guidance, see UILayoutGuide, layoutMarginsGuide, readableContentGuide, and safeAreaLayoutGuide.

Size Classes

Size classes are traits that are automatically assigned to content areas based on their size. The system defines two size classes, regular (denotes expansive space) and compact (denotes constrained space), which describe the height and width of a view.

사이즈 클래스는 설정된 사이즈에 기반한 컨텐츠 영역이 자동으로 할당되는 특성입니다. 이 시스템은 뷰의 높이와 너비를 설명하는 regular (확장 공간 표시) 및 compact (제한 공간 표시)의 두 가지 사이즈 클래스를 정의합니다.

A view may possess any combination of size classes:

뷰는 사이즈 클래스의 어떤 조합이든 가질 수 있습니다.

  • Regular width, regular height

  • Compact width, compact height

  • Regular width, compact height

  • Compact width, regular height

As with other environmental variations, iOS dynamically makes layout adjustments based on the size classes of a content area. For example, when the vertical size class changes from compact height to regular height, perhaps because the user rotated the device from landscape to portrait orientation, tab bars may become taller.

다른 환경 변화와 마찬가지로 iOS는 컨텐츠 영역의 사이즈 클래스를 기반으로 레이아웃을 동적으로 조정합니다. 예를 들어 수직 사이즈 클래스가 compact height 에서 regular height로 변경되면 아마도 사용자가 가로 방향에서 세로 방향으로 장치를 회전했기 때문에 탭바가 더 커질 수 있습니다.

Device Size Classes

Different size class combinations apply to the full-screen experience on different devices, based on screen size.

화면 크기에 따라 다양한 사이즈 클래스 조합을 다양한 장치의 풀스크린 경험에 적용합니다.

Multitasking Size Classes

On iPad, size classes also apply when your app runs in a multitasking configuration.

iPad에서는 앱이 멀티태스킹을 작동하고 있을 때에도 사이즈 클래스가 적용됩니다.

General Layout Considerations

Ensure that primary content is clear at its default size. People shouldn’t have to scroll horizontally to read important text, or zoom to see primary images, unless they choose to change the size.

주요 컨텐츠가 기본 사이즈로 명확하게 표시되어 있는지 확인하십시오. 사람들이 중요한 텍스트를 읽기 위해 수평으로 스크롤하거나 크기를 변경하지 않는한 기본 이미지를 확대하면 안됩니다.

Maintain an overall consistent appearance throughout your app. In general, elements with similar functions should look similar.

앱 전반에 걸쳐 전체적으로 일관된 모양 유지하십시오. 일반적으로 비슷한 기능을 가진 요소는 비슷하게 보여야 합니다.

Use visual weight and balance to convey importance. Large items catch the eye and appear more important than smaller ones. Larger items are also easier to tap, which is especially important when an app is used in distracting surroundings, such as in the kitchen or a gym. In general, place principal items in the upper half of the screen and—in a left-to-right reading context—near the left side of the screen.

중요성을 전달하기 위해 시각적 무게와 균형을 사용하십시오. 큰 품목은 눈에 띄고 더 작은 품목보다 중요하게 보입니다. 큰 항목은 탭하기가 더 쉽습니다. 주방이나 헬스장과 같이 산만한 환경에서 앱을 사용할 때 특히 중요합니다. 일반적으로 화면의 위쪽 절반에 주요 항목을 배치하고 화면의 왼쪽 근처에 왼쪽에서 오른쪽으로 읽는 내용을 배치합니다.

Use alignment to ease scanning and to communicate organization and hierarchy. Alignment makes an app look neat and organized, helps people focus while scrolling, and makes it easier to find information. Indentation and alignment can also indicate how groups of content are related.

쉽게 훑어보고 조직과 계층 구조를 전달하기 위해 정렬을 사용하십시오. 정렬은 앱을 깔끔하고 체계적으로 보이게 만들고, 스크롤할 때 집중할 수 있도록 하며 정보를 쉽게 찾을 수 있도록 합니다. 들여쓰기 및 정렬은 또한 컨텐츠 그룹과 관련된 방법을 나타낼 수 있습니다.

If possible, support both portrait and landscape orientations. People prefer to use apps in different orientations, so it’s best when you can fulfill that expectation.

가능한 경우 세로 및 가로 방향을 모두 지원하십시오. 사람들은 앱을 다른 방향으로 사용하는 것을 선호하기 때문에, 그 기대에 부응하는 것이 가장 좋습니다.

Be prepared for text-size changes. People expect most apps to respond appropriately when they choose a different text size in Settings. To accommodate some text-size changes, you might need to adjust the layout. For more information about text usage in your app, see Typography.

텍스트 크기 변화에 대비하십시오. 사람들은 대부분의 앱이 설정에서 다른 텍스트 크기를 선택할 때 적절하게 응답하기를 기대합니다. 일부 텍스트 크기를 변경하려면 레이아웃을 조정해야 할 수도 있습니다.

Provide ample touch targets for interactive elements. Try to maintain a minimum tappable area of 44pt x 44pt for all controls.

대화형 요소에 대해 충분한 터치 타겟을 제공하십시오. 모든 컨트롤에 대해 최소 44pt x 44pt의 터치영역을 유지하십시오.

Preview your app on multiple devices. You can use Simulator (included with Xcode) to preview your app and check for clipping and other layout issues. If your app supports landscape mode, make sure your layouts look great regardless of whether the device was rotated left or right. Upside-down portrait mode is not supported on full-screen iPhones. Some features, like wide color imagery, are best previewed on actual devices.

여러 기기에서 앱을 미리보십시오. 시뮬레이터 (Xcode에 포함됨)를 사용하여 앱을 미리보고 clipping 및 기타 레이아웃 문제가 있는지 확인할 수 있습니다. 앱이 가로 모드를 지원하는 경우 기기가 왼쪽 또는 오른쪽으로 회전했는지 여부에 관계없이 레이아웃이 좋아 보이는지 확인하세요. 전체 화면 iPhone에서는 상하반전 세로 모드가 지원되지 않습니다. 넓은 컬러 이미지와 같은 일부 기능은 실제 장치에서 미리 보는 것이 가장 좋습니다.

Apply readability margins when displaying text on larger devices. These margins keep text lines short enough to ensure a comfortable reading experience.

큰 기기에 텍스트를 표시할 때 읽을 수 있는 여백를 적용합니다. 이러한 여백은 텍스트 라인을 충분히 짧게 유지하여 편안한 읽기 환경을 보장합니다.

Adapting to Changes in Context

Maintain focus on the current content during context changes. Content is your highest priority. Changing focus when the environment changes can be disorienting and frustrating, and can make people feel like they’ve lost control of the app.

컨텍스트 변경 중에 현재 컨텐츠에 초점을 유지하십시오. 컨텐츠가 최우선 순위입니다. 환경이 바뀔 때 초점을 변경하는 것은 방향을 잃게 하고 실망스러울 수 있으며 사람들이 앱을 제어 할 수없는 것처럼 느끼게 할 수 있습니다.

Avoid gratuitous layout changes. When someone rotates a device, the entire layout doesn’t have to change. For example, if your app shows a grid of images in portrait mode, it doesn’t have to present the same images as a list in landscape mode. Instead, it might simply adjust the dimensions of the grid. Try to maintain a comparable experience in all contexts.

무의미한 레이아웃 변경을 피하십시오. 누군가가 장치를 회전 시키면 전체 레이아웃을 변경할 필요가 없습니다. 예를 들어 앱에 세로 ​​모드의 이미지 격자가 표시되는 경우 가로 모드에서 목록과 동일한 이미지를 표시 할 필요가 없습니다. 대신 그리드의 크기를 간단히 조정할 수 있습니다. 모든 컨텍스트에서 비교 가능한 경험을 유지하십시오.

If it’s essential that your app run in a single orientation, support both variants. An app that runs only in landscape mode should be usable regardless of whether the user rotates the device left or right. An app that runs only in portrait mode should rotate its content 180 degrees when the user rotates the device 180 degrees—except on iPhone X, which doesn’t support upside-down portrait mode. If your app doesn’t rotate automatically when someone holds the device in the wrong orientation, they’ll know instinctively to rotate it. You don’t need to tell them.

앱이 단일 방향으로 실행되는 것이 필수인 경우 두 가지 형식을 모두 지원하십시오. 가로 모드에서만 실행되는 앱은 사용자가 기기를 왼쪽 또는 오른쪽으로 회전하는지 여부에 관계없이 사용할 수 있어야합니다. 세로 모드에서만 실행되는 앱은 사용자가 180도 회전 할 때 콘텐츠를 180도 회전해야합니다 (반대 방향 세로 모드를 지원하지 않는 iPhone X 제외). 다른 사람이 장치를 잘못된 방향으로 잡고있을 때 앱이 자동으로 회전하지 않으면 앱이 본능적으로 회전한다는 것을 알게 됩니다. 당신은 그들에게 말할 필요가 없습니다.

Customize your app’s response to rotation according to context. A game that lets people move a character by rotating the device, for example, probably shouldn’t switch orientations during gameplay. It could, however, display menus and intro sequences based on the current orientation.

컨텍스트에 따라 회전에 대한 앱의 응답을 사용자 정의하십시오. 예를 들어, 기기를 회전하여 사람들이 캐릭터를 움직일 수있게 하는 게임은 게임 플레이 중에 방향을 바꾸면 안됩니다. 그러나 현재 방향을 기준으로 메뉴와 소개 시퀀스를 표시 할 수 있습니다.

Make sure your app works on iPad, not just on iPhone. Users appreciate having the flexibility to run your app on either type of iOS device. Even if you expect most people to use your app on iPhone, interface elements should remain visible and functional on iPad. If certain features of your app require iPhone-specific hardware—like 3D Touch—consider hiding or disabling those features on iPad and letting people use your app's other features.

앱이 iPhone뿐 아니라 iPad에서도 작동하는지 확인하십시오. 사용자는 어느 유형의 iOS 기기에서나 앱을 실행할 수 있는 유연성을 갖추는 것을 높이 평가합니다. 대부분의 사용자가 iPhone에서 앱을 사용할 것으로 예상하더라도 iPad에서 인터페이스 요소를 볼 수 있고 사용할 수 있어야 합니다. 3D Touch와 같은 iPhone 전용 하드웨어(예: 3D Touch)가 필요한 경우 iPad에서 해당 기능을 숨기거나 비활성화하고 다른 기능을 사용할 수 있도록 하는 것이 좋습니다.

Be mindful of aspect ratio differences when reusing existing artwork. Different screen sizes may have different aspect ratios, causing artwork to appear cropped, letterboxed, or pillarboxed. Make sure that important visual content remains in view on all display sizes.

아트워크를 재사용할 때는 가로 세로 비율 차이에 유의하십시오. 화면 크기에 따라 가로 세로 비율이 다를 수 있으며, 이로 인해 아트워크가 cropped, letterboxed, pillarboxed로 나타납니다. 모든 디스플레이 크기에 중요한 시각적 콘텐츠가 유지되는지 확인하십시오.

Designing a Full-Screen Experience

Extend visual elements to fill the screen. Make sure backgrounds extend to the edges of the display, and that vertically scrollable layouts, like tables and collections, continue all the way to the bottom.

화면을 채우기 위해 시각적 요소를 확장하십시오. 배경이 디스플레이의 가장자리까지 확장되고, 테이블 및 컬렉션과 같이 세로로 스크롤 가능한 레이아웃이 맨 아래까지 계속 이어지는지 확인하십시오.

Avoid explicitly placing interactive controls at the very bottom of the screen and in corners. People use swipe gestures at the bottom edge of the display to access features like the Home screen and app switcher, and these gestures may cancel custom gestures you implement in this area. The far corners of the screen can be difficult areas for people to reach comfortably.

화면 맨 아래 및 모서리에 대화형 컨트롤을 명시적으로 배치하지 마십시오. 사람들은 디스플레이의 아래쪽 가장자리에서 스와이프 제스처를 사용하여 홈 화면 및 앱 전환기와 같은 기능에 액세스하며, 이러한 제스처는 이 영역에 구현한 사용자 정의 제스처가 취소 되게 할 수 있습니다. 화면과 거리가 먼 가장자리는 사람들이 편안하게 접근하기 어려운 영역이 될 수 있습니다.

Inset essential content to prevent clipping. In general, content should be centered and symmetrically inset so it looks great in any orientation, isn’t clipped by rounded corners, isn’t hidden by a sensor housing, and isn’t obscured by the indicator for accessing the Home screen. For best results, use standard, system-provided interface elements and Auto Layout to construct your interface and adhere to the layout guides and safe area defined by UIKit. When the device is in landscape orientation, it may be appropriate for some apps—like games—to place tappable controls in the lower portion of the screen (extending below the safe area) to allow more room for content. Use matching insets when placing controls at the top and bottom of the screen, and leave ample space around the Home indicator so people don't accidentally target it when trying to interact with a control.

잘리는 것을 방지하기 위해 필수 컨텐츠를 삽입하십시오. 일반적으로 컨텐츠는 어떤 방향해서든 훌륭해 보이기 위해 중앙에 위치하고 대칭적으로 삽입되어야 하며, 둥근 모서리로 잘리지 않으며, 센서 하우징에 가려지지 않으며, 홈스크린에 접근하기 위한 표시기에 의해 가려지지 않습니다. 최상의 결과를 얻으려면 표준 시스템 제공 인터페이스 요소와 Auto Layout을 사용하여 인터페이스를 구성하고 UIKit에서 정의한 layout guides and safe area을 준수하십시오. 기기가 가로 방향일 때, 콘텐츠의 여유 공간을 확보하기 위해 게임 같은 일부 앱이 화면 아래(안전 영역 아래로 확장)에 배치되는 것이 적절할 수 있습니다. 화면 상단과 하단에 컨트롤을 배치 할 때 일치하는 인셋을 사용하고 홈 표시기 주위에 충분한 공간을 남겨 두어 사람들이 실수로 컨트롤과 상호 작용하려고 시도하지 않도록합니다.

Inset full-width buttons. A button that extends to the edges of the screen might not look like a button. Respect the standard UIKit margins on the sides of full-width buttons. A full-width button appearing at the bottom of the screen looks best when it has rounded corners and is aligned with the bottom of the safe area—which also ensures that it doesn't conflict with the Home indicator.

전체 너비 버튼을 삽입하십시오. 화면 가장자리까지 이어지는 버튼은 버튼처럼 보이지 않을 수 있습니다. 전체 너비 버튼의 측면에서 표준 UIKit 여백을 고려하십시오. 화면 하단에 나타나는 전체 너비 버튼은 모서리가 둥글고 안전 영역의 하단에 맞춰 졌을 때 가장 잘 보이며 홈 표시기와 충돌하지 않도록합니다.

Don't mask or call special attention to key display features. Don't attempt to hide a device's rounded corners, sensor housing, or indicator for accessing the Home screen by placing black bars at the top and bottom of the screen. Don't use visual adornments like brackets, bezels, shapes, or instructional text to call special attention to these areas, either.

주요 디스플레이 기능을 숨기거나 특별한 주의를 기울이지 마십시오. 장치의 둥근 모서리, 센서 하우징 또는 홈 화면에 접근하기 위한 표시기(화면 상단과 하단에 배치된 검정색 막대) 를 숨기지 마십시오 . 이러한 영역에 특별한 주의를 끌기 위해 괄호, 베젤, 모양 또는 지시 텍스트와 같은 시각적 장식품을 사용하지 마십시오.

Be mindful of the status bar height. The status bar is taller on full-screen iPhones than on older iPhones. If your app assumes a fixed status bar height for positioning content below the status bar, you must update your app to dynamically position content based on the user's device. Note that the status bar on full-screen iPhones doesn't change height when background tasks like voice recording and location tracking are active.

상태 표시 줄 높이에 유의하십시오. 상태 표시 줄은 전체 화면 아이폰에서 구형 iPhones보다 높습니다. 앱에서 상태 표시줄 아래에 콘텐츠를 배치하기 위해 고정된 상태 표시줄 높이를 가정하는 경우, 사용자의 장치를 기준으로 콘텐츠를 동적으로 배치하도록 앱을 업데이트해야 합니다. 음성 녹음 및 위치 추적과 같은 백그라운드 작업이 활성화되어있을 때 전체 화면 iPhone의 상태 표시 줄의 높이가 변하지 않습니다.

If your app currently hides the status bar, reconsider that decision for full-screen iPhones. Full-screen iPhones have more vertical space for content than older iPhones, and the status bar occupies an area of the screen your app probably won't fully utilize. The status bar also displays information people find useful. It should only be hidden in exchange for added value.

현재 앱이 상태 표시 줄을 숨기고 있으면 전체 화면 아이폰에 대한 결정을 재고하십시오. 전체 화면 아이폰은 구형 iPhone보다 콘텐츠를 위한 수직 공간이 더 많으며, 상태 표시줄은 앱이 충분히 활용하지 못할 화면 영역을 차지합니다. 상태 표시줄에는 사람들이 유용하다고 생각하는 정보도 표시됩니다. 부가 가치에 대한 대가로만 숨겨져 있어야합니다.

Allow auto-hiding of the indicator for accessing the Home screen sparingly. When auto-hiding is enabled, the indicator fades out if the user hasn't touched the screen for a few seconds. It reappears when the user touches the screen again. This behavior should be enabled only for passive viewing experiences like playing videos or photo slideshows.

홈 화면에 접근하기 위한 표시기의 자동 숨기기를 허용하십시오. 자동 숨기기가 활성화되면 사용자가 몇 초 동안 화면을 터치하지 않으면 표시기가 사라집니다. 사용자가 화면을 다시 터치하면 다시 나타납니다. 이 동작은 비디오 또는 사진 슬라이드쇼 재생과 같은 수동 보기 경험에만 사용하도록 설정해야 합니다.

Additional Layout Considerations

Make sure your website looks great on an edge-to-edge display. See Designing Websites for iPhone X on webkit.org.

Adaptivity and Layout - Visual Design - iOS - Human Interface Guidelines - Apple Developer

Last updated