Web Components Tile Manager 구성 요소를 사용하면 개별 타일에 콘텐츠를 표시할 수 있습니다. 이를 통해 사용자는 이러한 타일을 재정렬하고 크기를 조정하여 상호 작용할 수 있으므로 기본 설정에 따라 콘텐츠의 레이아웃과 모양을 자유롭게 사용자 지정할 수 있습니다. 이러한 유연성은 콘텐츠를 보다 개인화되고 효율적인 방식으로 보고 관리할 수 있도록 하여 사용자 환경을 향상시킵니다.
Web Components 타일 관리자 예제
다음 Ignite UI for Web Components Tile Manager Example은 작동 중인 컴포넌트를 보여줍니다.
이 샘플이 마음에 드시나요? 당사의 완전한 Ignite UI for Web Components 툴킷에 액세스하여 몇 분 만에 나만의 앱을 빌드하기 시작하세요. 무료로 다운로드하세요.
iframe 권한 정책으로 인해 이 예제의 전체 화면 버튼은 오른쪽 상단 모서리에 있는 '전체 화면으로 확장' 버튼을 클릭하여 예제를 독립 실행형 모드로 열 때만 작동합니다.
용법
Tile Manager는 기본 타일 레이아웃 동작을 제공하여 최대화 또는 일반 상태의 타일 배치를 관리합니다. 타일은 서로 독립적으로 크기를 조정할 수 있으며 복잡한 레이아웃을 형성하는 데 사용할 수 있습니다. 최종 사용자는 타일을 끌어다 놓아 순서를 변경할 수 있으므로 유연하고 직관적인 환경을 제공할 수 있습니다.
타일 매니저는 사용할 수 있는 두 가지 컴포넌트를 제공합니다.
TileComponent- 이 컴포넌트는 타일 매니저 내에 표시되는 개별 타일을 나타냅니다.
TileManagerComponent- 모든 타일 구성 요소를 포함하는 기본 구성 요소로, 전체 타일 레이아웃의 컨테이너 역할을 합니다.
시작하기
Tile Manager를 사용하려면 먼저 다음 명령을 실행하여 Ignite UI for Web Components 설치해야 합니다.
Ignite UI for Web Components에 대한 전체 소개를 보려면 시작하기 항목을 읽어보세요.
공들여 나열한 것
열과 행
Tile Manager의 그리드 열 수를 지정할 수 있습니다. 이렇게 하려면 속성을 원하는 열 수로 설정 column-count 하기만 하면 됩니다. 숫자가 1보다 작거나 속성이 설정되지 않은 경우 타일 관리자는 각 열의 너비가 200px 이상이고 사용 가능한 공간을 균등하게 공유하도록 확장되는 가능한 한 많은 열을 만듭니다. 뷰포트 치수가 변경되면 공간 사용을 최대화하기 위해 타일도 재정렬됩니다.
<igc-tile-managercolumn-count="2"><igc-tile><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile><igc-tile><spanslot="title">Tile 3 header</span><p>Content for Tile 3</p></igc-tile>
...
</igc-tile-manager>html
이 코드 스니펫에서 타일 관리자의 3개 타일은 2개의 행과 2개의 열로 정렬됩니다.
간격
타일 매니저에서 사용할 수 있는 또 다른 속성은 타일 사이의 공간을 정의하는 속성입니다 gap. 속성의 값은 gap 숫자 뒤에 길이 단위가 오는 것이어야 합니다(예: px, rem, em, ...). 이 값은 타일 사이의 수평 간격(너비)과 수직 간격(높이) 모두에 적용됩니다.
<igc-tile-managergap="20px"><igc-tile><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile>
...
</igc-tile-manager>html
최소 너비 및 높이
또한 Tile Manager에서 열()의 최소 너비와 min-column-width 행(min-row-height)의 최소 높이를 설정하는 속성도 있습니다. gap 속성과 마찬가지로 이러한 속성의 값은 숫자 뒤에 길이 단위가 와야 합니다. 이 값은 Tile Manager에서 모든 열의 최소 너비와 모든 행의 최소 높이를 정의합니다.
<igc-tile-managermin-column-width="200px"min-row-height="150px"><igc-tile><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile>
...
</igc-tile-manager>html
<!DOCTYPE html><html><head><title>Tile Manager Columns</title><metacharset="UTF-8" /><linkrel="shortcut icon"href="https://static.infragistics.com/xplatform/images/browsers/wc.png"><linkrel="stylesheet"href="https://fonts.googleapis.com/icon?family=Material+Icons" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Kanit&display=swap" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Titillium Web" /><linkrel="stylesheet"href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css"type="text/css" /></head><body><divid="root"><divclass="container sample center"><divclass="inputWrapper"><igc-inputlabel="Columns Number"id="rowIn"type='number'value="0"min="0"></igc-input><igc-inputlabel="Gap Size"type='string'placeholder="10px"></igc-input></div><igc-tile-managergap="10px"><igc-tiledisable-fullscreendisable-maximize><divclass="picture"><imgsrc="https://picsum.photos/1048/998"alt="picture" /></div></igc-tile><igc-tiledisable-fullscreendisable-maximize><divclass="picture"><imgsrc="https://picsum.photos/1049/999"alt="picture" /></div></igc-tile><igc-tiledisable-fullscreendisable-maximize><divclass="picture"><imgsrc="https://picsum.photos/1050/1000"alt="picture" /></div></igc-tile><igc-tiledisable-fullscreendisable-maximize><divclass="picture"><imgsrc="https://picsum.photos/1051/1001"alt="picture" /></div></igc-tile><igc-tiledisable-fullscreendisable-maximize><divclass="picture"><imgsrc="https://picsum.photos/1052/1002"alt="picture" /></div></igc-tile><igc-tiledisable-fullscreendisable-maximize><divclass="picture"><imgsrc="https://picsum.photos/1053/1003"alt="picture" /></div></igc-tile></igc-tile-manager></div></div><!-- This script is needed only for parcel and it will be excluded for webpack -->
<% if (false) { %>
<scriptsrc="src/index.ts"></script>
<% } %>
</body></html>html
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
Tile 구성 요소에는 각 타일에 대해 개별적으로 설정할 수 있는 속성이 있습니다. 이러한 속성 중 일부는 다음과 같습니다.
이 col-span 속성은 타일이 레이아웃에서 가로지르는 열 수를 지정하여 가로 크기를 제어할 수 있도록 합니다.
이 row-span 속성은 타일이 세로로 확장되는 행 수를 결정하여 레이아웃 내에서 타일의 높이를 조정합니다.
이 col-start 속성은 타일이 배치되는 시작 열을 지정합니다.
이 row-start 속성은 타일이 배치되는 시작 행을 지정합니다.
이 disable-fullscreen 속성은 기본 전체 화면 작업 버튼을 숨깁니다.
이 disable-maximize 속성은 기본 최대화 토글 작업 단추를 숨깁니다.
이 disable-resize 속성은 사용자가 타일의 크기를 조정하지 못하도록 합니다.
<igc-tile-manager><igc-tilecol-span="2"disable-resize><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile>
...
</igc-tile-manager>html
Tile 컴포넌트는 또한 사용할 수 있는 여러 슬롯을 노출합니다.
슬롯 이름
설명
title
타일 헤더에 대한 콘텐츠입니다.
fullscreen-action
기본 전체 화면 작업 내용을 덮어씁니다.
maximize-action
Overwrite the default maximize action content.
actions
기본 작업 후에 렌더링된 사용자 지정 콘텐츠.
side-adorner
Overwrite the default horizontal resize adorner.
corner-adorner
Overwrite the default diagonal resize adorner.
bottom-adorner
Overwrite the default vertical resize adorner.
머리글 섹션 작업
기본적으로 헤더 섹션에는 두 개의 작업 버튼이 포함되어 있습니다.
이 단추는 maximize 타일의 콘텐츠를 확대하여 타일 관리자의 전체 너비를 채우므로 콘텐츠를 더 넓게 볼 수 있습니다.
이 fullscreen 단추를 사용하면 타일을 사용자의 브라우저에서 전체 화면 모드로 열 수 있습니다.
두 버튼 중 하나만 표시하려면 또는 disable-fullscreen 속성을 설정할 disable-maximize 수 있습니다. 모양을 사용자 지정하려면 최대화 단추 fullscreen-action에 슬롯을 사용하거나 전체 화면 단추에 슬롯을 사용할 maximize-action 수 있습니다.
<igc-tile-manager><igc-tiledisable-fullscreen><igc-icon-buttonslot="maximize-actions"name="north_east"collection="material"></igc-icon-button><p>Content for Tile 1</p></igc-tile></igc-tile-manager>html
또한 두 작업 버튼을 모두 비활성화하고 기본 설정에 따라 사용자 지정 버튼을 만들 수 있는 옵션도 있습니다.
<!DOCTYPE html><html><head><title>Tile Manager Actions</title><metacharset="UTF-8" /><linkrel="shortcut icon"href="https://static.infragistics.com/xplatform/images/browsers/wc.png"><linkrel="stylesheet"href="https://fonts.googleapis.com/icon?family=Material+Icons" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Kanit&display=swap" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Titillium Web" /><linkrel="stylesheet"href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css"type="text/css" /></head><body><divid="root"><divclass="container sample center"><igc-tile-managerid="tile-manager1"column-count="2"gap="20px"><igc-tile ><h3slot="title">Default Actions</h3><p>This tile has default actions and title.</p></igc-tile><igc-tiledisable-fullscreen><h3slot="title">No Fullscreen Action</h3><p>Fullscreen is disabled via property.</p></igc-tile><igc-tiledisable-fullscreendisable-maximize><h3slot="title">Custom Actions</h3><igc-icon-buttonid="customOne"slot="actions"variant="flat"collection="material"exportparts="icon"name="north_east"aria-label="north_east"></igc-icon-button><p>Replace the default actions with custom ones, and include extra actions when the tile is maximized.</p></igc-tile><igc-tiledisable-fullscreendisable-maximize><igc-icon-buttonid="customTwo"slot="actions"variant="flat"collection="material"exportparts="icon"name="north_east"></igc-icon-button><p>Display only custom actions in the header.</p></igc-tile><igc-tiledisable-fullscreendisable-maximize><h3slot="title">Only title</h3><p>Display only title in the header.</p></igc-tile><igc-tiledisable-fullscreendisable-maximize><p>Content only.</p></igc-tile></igc-tile-manager></div></div><!-- This script is needed only for parcel and it will be excluded for webpack -->
<% if (false) { %>
<scriptsrc="src/index.ts"></script>
<% } %>
</body></html>html
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
이 예에서는 Ignite UI Icon Button 구성 요소를 사용하여 사용자 지정 작업 버튼을 만들었습니다.
크기 조정
타일 관리자의 크기 조정은 세 가지 다른 크기 조정 표시기를 사용하여 타일 크기를 조정할 수 있는 기능입니다.
Side Adorner: 열 범위를 수정하여 너비를 조정합니다.
아래쪽 표시기: 행 범위를 수정하여 높이를 조정합니다.
모서리 표시기: 너비와 높이를 동시에 조정합니다.
부드러운 크기 조정을 위해 타일의 크기를 직접 수정하는 대신 고스트 요소가 사용됩니다. 이 요소는 원래 타일 위에 나타나 크기 조정이 시작될 때 현재 크기를 표시하며 사용자가 크기 조정 핸들을 드래그하면 실시간으로 업데이트됩니다.
고스트 요소가 사용 가능한 그리드 공간을 초과하면 그리드 한계 내에서 가능한 가장 큰 스팬으로 자동 조정됩니다.
Tile Manager는 타일의 크기가 변경될 때 자동으로 재정렬되어 빈 공간이 최소화되도록 합니다. 그렇기 때문에 타일을 확장하면 인접한 타일이 새로운 위치로 밀려날 수 있고, 축소하면 다른 타일이 동적으로 채울 수 있는 틈이 생깁니다. 이렇게 하면 Tile Manager가 겹치는 타일 없이 가능한 한 컴팩트하게 유지되고 모든 이동이 정의된 그리드 구조 내에서 유지됩니다.
이 resize-mode 속성을 사용하여 Tile Manager에서 크기 조정이 적용되는 방식을 제어할 수 있습니다. or로 none 설정할 수 있으며, hover always 이는 크기 조정 표시기가 표시되는 시기를 결정합니다. 기본값은 none 타일의 크기를 조정할 수 없습니다.
<!DOCTYPE html><html><head><title>Tile Manager Resize</title><metacharset="UTF-8" /><linkrel="shortcut icon"href="https://static.infragistics.com/xplatform/images/browsers/wc.png"><linkrel="stylesheet"href="https://fonts.googleapis.com/icon?family=Material+Icons" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Kanit&display=swap" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Titillium Web" /><linkrel="stylesheet"href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css"type="text/css" /></head><body><divid="root"><divclass="container sample center"><divclass="inputWrapper"><igc-radio-groupid="resize"alignment="horizontal"><igc-radioname="resize"value="Always"checked>Always</igc-radio><igc-radioname="resize"value="Hover">Hover</igc-radio><igc-radioname="resize"value="None">None</igc-radio></igc-radio-group><igc-inputlabel="Minimum Column Width"placeholder="200px"type='string'></igc-input><igc-inputlabel="Minimum Row Height"placeholder="200px"type='string'></igc-input></div><igc-tile-managerresize-mode="always"gap="20px"><igc-tile><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile><igc-tile><spanslot="title">Tile 3 header</span><p>Content for Tile 3</p></igc-tile><igc-tile><spanslot="title">Tile 4 header</span><p>Content for Tile 4</p></igc-tile></igc-tile-manager></div></div><!-- This script is needed only for parcel and it will be excluded for webpack -->
<% if (false) { %>
<scriptsrc="src/index.ts"></script>
<% } %>
</body></html>html
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
타일은 전체 그리드 단위로 크기가 조정되므로 전체 열 또는 행에 의해서만 확장되거나 축소될 수 있습니다. 고스트 요소는 중간 지점을 지나 확장될 때 다음 열 또는 행으로 스냅되고 중간 지점을 지나 축소될 때 이전 열 또는 행으로 스냅됩니다. 이는 모든 표시기(아래쪽, 측면 및 모서리)에 적용되어 타일이 항상 그리드에 정렬된 상태로 유지되도록 합니다.
그리드 간격도 고려하여 크기를 조정하는 동안 레이아웃을 일관되게 유지합니다.
제한 사항
크기 조정 프로세스에는 몇 가지 제약 조건과 제한 사항이 있습니다.
타일은 정의된 최소 너비 또는 높이(minColWidth, minRowHeight)보다 작게 크기를 조정할 수 없습니다.
바둑판식 배열은 그리드에서 사용 가능한 최대 가로 공간을 초과할 수 없습니다.
재주문
드래그 앤 드롭 기능을 사용하여 Tile Manager에서 타일을 재정렬할 수 있습니다. 기본적으로 타일은 드래그할 수 없습니다. 이 기능을 활성화하려면 Tile Manager의 속성을 or tile-header 중 하나로 tile 설정합니다 drag-mode.
이 tile 옵션을 사용하면 개별 타일의 아무 곳이나 길게 클릭하여 드래그를 시작할 수 있습니다.
이 tile-header 옵션을 사용하면 타일의 헤더 섹션을 길게 클릭하여 드래그 프로세스를 시작할 수 있습니다.
타일이 최대화 또는 전체 화면 상태일 때는 타일을 드래그할 수 없습니다.
크기 조정과 유사하게, 드래그 앤 드롭 프로세스를 시작하면 잡은 타일 아래에 고스트 요소가 나타납니다. 타일을 드래그하면 고스트 요소가 함께 이동하여 다른 타일의 순서를 실시간으로 동적으로 변경합니다. 이렇게 하면 타일을 놓을 때 타일 그리드가 어떻게 보이는지 미리 볼 수 있습니다.
<igc-tile-managerdrag-mode="tile-header"><igc-tile><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile></igc-tile-manager>html
<!DOCTYPE html><html><head><title>Tile Manager Drag and drop</title><metacharset="UTF-8" /><linkrel="shortcut icon"href="https://static.infragistics.com/xplatform/images/browsers/wc.png"><linkrel="stylesheet"href="https://fonts.googleapis.com/icon?family=Material+Icons" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Kanit&display=swap" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Titillium Web" /><linkrel="stylesheet"href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css"type="text/css" /></head><body><divid="root"><divclass="container sample center"><divclass="radioWrapper"><igc-radio-groupid="dragMode"alignment="horizontal"><igc-radioname="dragMode"value="TileHeader"checked>Tile-header</igc-radio><igc-radioname="dragMode"value="Tile">Tile</igc-radio><igc-radioname="dragMode"value="None">None</igc-radio></igc-radio-group></div><igc-tile-managerdrag-mode="tile-header"drag-action="slide"column-count="2"gap="20px"><igc-tile><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile><igc-tile><spanslot="title">Tile 3 header</span><p>Content for Tile 3</p></igc-tile><igc-tile><spanslot="title">Tile 4 header</span><p>Content for Tile 4</p></igc-tile></igc-tile-manager></div></div><!-- This script is needed only for parcel and it will be excluded for webpack -->
<% if (false) { %>
<scriptsrc="src/index.ts"></script>
<% } %>
</body></html>html
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
<!DOCTYPE html><html><head><title>Tile Manager Layout</title><metacharset="UTF-8" /><linkrel="shortcut icon"href="https://static.infragistics.com/xplatform/images/browsers/wc.png"><linkrel="stylesheet"href="https://fonts.googleapis.com/icon?family=Material+Icons" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Kanit&display=swap" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Titillium Web" /><linkrel="stylesheet"href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css"type="text/css" /></head><body><divid="root"><divclass="container sample center"><divclass="btnWrapper"><igc-buttonid="saveL">Save Layout</igc-button><igc-buttonid="loadL">Load Layout</igc-button><igc-buttonid="addT">Add Tile</igc-button><igc-buttonid="remT">Remove Tile</igc-button></div><igc-tile-managerresize-mode="always"id="tile-manager1"drag-mode="tile"column-count="2"gap="20px"><igc-tile><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile><igc-tile><spanslot="title">Tile 3 header</span><p>Content for Tile 3</p></igc-tile><igc-tile><spanslot="title">Tile 4 header</span><p>Content for Tile 4</p></igc-tile></igc-tile-manager></div></div><!-- This script is needed only for parcel and it will be excluded for webpack -->
<% if (false) { %>
<scriptsrc="src/index.ts"></script>
<% } %>
</body></html>html
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css
두 구성 요소의 Tile Manager 모양을 사용자 지정할 수도 있습니다 Tile. Tile Manager Tile Manager의 기본 래퍼 스타일을 지정하는 데 사용할 수 있는 CSS 속성이 base 하나만 노출됩니다. 이 컴포넌트는 Tile 사용할 수 있는 몇 가지 CSS 속성을 노출합니다.
부품명
설명
base
타일 구성 요소의 래핑 컨테이너입니다.
header
title 및 actions 부분을 포함하는 타일의 헤더 컨테이너입니다.
title
제목 컨테이너입니다.
actions
actions 컨테이너입니다.
content-container
타일 기본 슬롯을 래핑하는 컨테이너입니다.
trigger-side
The horizontal adorner.
trigger
The diagonal adorner
trigger-bottom
The vertical adorner.
이러한 CSS 부분을 사용하여 다음과 같이 두 구성 요소의 모양을 사용자 지정할 수 있습니다.
표시기의 아이콘을 , corner-adorner, 및 bottom-adorner slots를 사용하여 side-adorner 사용자 지정 아이콘으로 변경할 수도 있습니다. 이렇게 하려면 타일 요소 내에 요소를 만듭니다 igc-icon. 그런 다음 해당 슬롯을 세 개의 표시기 중 하나로 설정하고 사용할 아이콘의 이름을 지정합니다.
<!DOCTYPE html><html><head><title>Tile Manager Styling</title><metacharset="UTF-8" /><linkrel="shortcut icon"href="https://static.infragistics.com/xplatform/images/browsers/wc.png"><linkrel="stylesheet"href="https://fonts.googleapis.com/icon?family=Material+Icons" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Kanit&display=swap" /><linkrel="stylesheet"href="https://fonts.googleapis.com/css?family=Titillium Web" /><linkrel="stylesheet"href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css"type="text/css" /></head><body><divid="root"><divclass="container sample center"><igc-tile-managercolumn-count="2"gap="20px"resize-mode="always"><igc-tile><igc-iconslot="side-adorner"class="side"name="indicator"></igc-icon><igc-iconslot="corner-adorner"class="corner"name="indicator"></igc-icon><igc-iconslot="bottom-adorner"class="bottom"name="indicator"></igc-icon><spanslot="title">Tile 1 header</span><p>Content for Tile 1</p></igc-tile><igc-tile><spanslot="title">Tile 2 header</span><p>Content for Tile 2</p></igc-tile><igc-tile><spanslot="title">Tile 3 header</span><p>Content for Tile 3</p></igc-tile><igc-tile><spanslot="title">Tile 4 header</span><p>Content for Tile 4</p></igc-tile></igc-tile-manager></div></div><!-- This script is needed only for parcel and it will be excluded for webpack -->
<% if (false) { %>
<scriptsrc="src/index.ts"></script>
<% } %>
</body></html>html
/* shared styles are loaded from: *//* https://static.infragistics.com/xplatform/css/samples */css