Xamarin.ios ScrollViewXamarin.Forms ScrollView

샘플 다운로드 샘플 다운로드Download Sample Download the sample

ScrollView 는 레이아웃을 포함 하며 화면을 스크롤할 수 있습니다.ScrollView contains layouts and enables them to scroll offscreen. ScrollView는 키보드를 표시할 때 보기가 화면에 표시 되는 부분으로 자동으로 이동 하도록 하는 데에도 사용 됩니다.ScrollView is also used to allow views to automatically move to the visible portion of the screen when the keyboard is showing.


ScrollView 를 사용 하 여 더 큰 보기가 더 작은 휴대폰에서 잘 표시 되도록 할 수 있습니다.ScrollView can be used to ensure that larger views display well on smaller phones. 예를 들어 iPhone 6s에서 작동 하는 레이아웃은 iPhone 4s에서 잘릴 수 있습니다.For example, a layout that works on an iPhone 6s may be clipped on an iPhone 4s. @No__t_0를 사용 하면 레이아웃의 잘린 부분이 더 작은 화면에 표시 될 수 있습니다.Using a ScrollView would allow the clipped portions of the layout to be displayed on the smaller screen.

사용 현황Usage


ScrollView 개체는 중첩 될 수 없습니다.ScrollView objects should not be nested. 또한 ListViewWebView와 같이 스크롤 기능을 제공 하는 다른 컨트롤과 ScrollViews 중첩 되어서는 안 됩니다.In addition, ScrollViews should not be nested with other controls that provide scrolling, like ListView and WebView.

ScrollView 는 단일 뷰나 레이아웃으로 설정할 수 있는 Content 속성을 노출 합니다.ScrollView exposes a Content property, which can be set to a single view or layout. 매우 큰 boxView를 사용 하 여 Entry 다음의 레이아웃 예제를 생각해 보세요.Consider this example of a layout with a very large boxView, followed by an Entry:

            <BoxView BackgroundColor="Red" HeightRequest="600" WidthRequest="150" />
            <Entry />

C#:In C#:

var scroll = new ScrollView();
Content = scroll;
var stack = new StackLayout();
stack.Children.Add(new BoxView { BackgroundColor = Color.Red,    HeightRequest = 600, WidthRequest = 600 });
stack.Children.Add(new Entry());

사용자가 아래로 스크롤하면 BoxView 표시 됩니다.Before the user scrolls down, only the BoxView is visible:

사용자가 Entry에서 텍스트를 입력 하기 시작 하면 뷰가 화면에 계속 표시 되도록 스크롤됩니다.Notice that when the user starts to enter text in the Entry, the view scrolls to keep it visible on screen:

데이터 액세스Properties

ScrollView는 다음 속성을 정의합니다.ScrollView defines the following properties:


@No__t_1 속성을 Neither로 설정 하면 스크롤을 사용 하지 않도록 설정할 수 있습니다.Scrolling can be disabled by setting the Orientation property to Neither.


ScrollView 는 좌표를 사용 하거나 표시 해야 하는 특정 뷰를 지정 하 여 뷰를 스크롤 하는 데 사용할 수 있는 ScrollToAsync 메서드를 제공 합니다.ScrollView provides a ScrollToAsync method, which can be used to scroll the view either using coordinates or by specifying a particular view that should be made visible.

좌표를 사용 하는 경우 스크롤에 애니메이션을 적용 해야 하는지 여부를 나타내는 부울과 함께 xy 좌표를 지정 합니다.When using coordinates, specify the x and y coordinates, along with a boolean indicating whether the scrolling should be animated:

scroll.ScrollToAsync(0, 150, true); //scrolls so that the position at 150px from the top is visible

scroll.ScrollToAsync(label, ScrollToPosition.Start, true); //scrolls so that the label is at the start of the list


@No__t_2 속성이 Neither으로 설정 된 경우 ScrollToAsync 메서드가 스크롤되지 않습니다.The ScrollToAsync method will not result in scrolling when the ScrollView.Orientation property is set to Neither.

특정 요소로 스크롤할 때 ScrollToPosition 열거형은 뷰에서 요소가 표시 되는 위치를 지정 합니다.When scrolling to a particular element, the ScrollToPosition enumeration specifies where in the view the element will appear:

  • 가운데 – 요소를 보기의 보이는 부분 가운데로 스크롤합니다.Center – scrolls the element to the center of the visible portion of the view.
  • – 요소를 뷰의 표시 된 부분 끝으로 스크롤합니다.End – scrolls the element to the end of the visible portion of the view.
  • Makevisible – 뷰 내에 표시 되도록 요소를 스크롤합니다.MakeVisible – scrolls the element so that it is visible within the view.
  • 시작 – 요소를 뷰의 표시 되는 부분에 대 한 시작 부분으로 스크롤합니다.Start – scrolls the element to the start of the visible portion of the view.

@No__t_0 속성은 뷰를 스크롤 하는 방법을 지정 합니다.The IsAnimated property specifies how the view will be scrolled. @No__t_0로 설정 하면 콘텐츠를 즉시 뷰로 이동 하는 것이 아니라 부드러운 애니메이션이 사용 됩니다.When set to true, a smooth animation will be used, rather than instantly moving the content into view.


ScrollViewScrolled 하나의 이벤트만 정의 합니다.ScrollView defines just one event, Scrolled. 뷰가 스크롤을 마치면 Scrolled 발생 합니다.Scrolled is raised when the view has finished scrolling. @No__t_0에 대 한 이벤트 처리기는 ScrollXScrollY 속성이 있는 ScrolledEventArgs를 사용 합니다.The event handler for Scrolled takes ScrolledEventArgs, which has the ScrollX and ScrollY properties. 다음은 ScrollView의 현재 스크롤 위치를 사용 하 여 레이블을 업데이트 하는 방법을 보여 줍니다.The following demonstrates how to update a label with the current scroll position of a ScrollView:

Label label = new Label { Text = "Position: " };
ScrollView scroll = new ScrollView();
scroll.Scrolled += (object sender, ScrolledEventArgs e) => {
    label.Text = "Position: " + e.ScrollX + " x " + e.ScrollY;

목록의 끝에서 스크롤할 때 바운스 효과 때문에 스크롤 위치는 음수일 수 있습니다.Note that scroll positions may be negative, due to the bounce effect when scrolling at the end of a list.