簡體   English   中英

UIScrollView內具有子視圖的UIView

[英]UIView with Subviews inside UIScrollView

我有一個包含ScrollView的View。 該Scrollview包含一個UIView(稱為ContentView),而該UIView又有兩個我要在其間滾動的子視圖。

運行時,以下是各種視圖的值:

ContentView(在UIScrollView內部):

  Width: 640
  Height: 568

ContentView內部的subView(UIView):

1個

X: 0
Y: 0
Width: 320
Height: 568

2

X: 320
Y: 0
Width: 320
Height: 568 

ScrollView:

Width: 320
Height: 568
ContentSize: 
Width: 640
Height: 568

我以編程方式(使用for循環)將子視圖添加到內容視圖,然后相應地更改ContentView的Bounds和ScrollView的ContentSize ,如下所示:

for (var i = 0; i < 2; i++) {
    var page = ViewModel.Items[i];
    var pageView = CreatePage(page);
    pageView.Frame = new CGRect(View.Bounds.Width*i, 0, View.Bounds.Width, View.Bounds.Height);
    ContentView.Add (pageView);
}

ContentView.Frame = new CGRect (0, 0, View.Bounds.Width * 2, View.Bounds.Height);
ScrollView.ContentSize = new CGSize (ContentView.Bounds.Width, ContentView.Bounds.Height);

當我加載應用程序時,這就是我得到的:

在此處輸入圖片說明

僅有一個子視圖未啟用滾動。 如何使水平滾動正常工作?

感謝您的任何答復! :-)

您以錯誤的方式設置了ContentView.Frame和ScrollView.ContentSize。 滾動視圖的框架應與屏幕的邊界相同,而contentSize等於實際內容的大小。

除非內容大小大於實際的UIScrollView實例的框架,否則UIScrollview不會滾動。

ContentView.Frame = new CGRect (0, 0, View.Bounds.Width, View.Bounds.Height);
ScrollView.ContentSize = new CGSize (ContentView.Bounds.Width*2, ContentView.Bounds.Height);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM