[英]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.