2
我正在開發一個應用程序,其中我有一個水平滾動UIScrollView全屏分頁包含多個(比方說3)垂直滾動UIScrollViews,每個也全屏。它們沒有邊距,左邊的原點是(0,0)。多個垂直滾動UIScrollViews在水平UIScrollView
每個垂直滾動的UIScrollView由放置一個以上的其他按鈕,每個被點擊的時候,提出了一個視圖控制器:
[self presentViewController:someViewController animated:YES completion:nil];
下面這段代碼工作正常,右側的兩個UIScrollViews,但它是左一個越野車:
- 水平UIScrollView的高度不能點擊按鈕。因此,如果水平UIScrollView的高度爲440px,則origin.y> 440的任何UIButton都不可選。
- 如果UIScrollView的稍微向下滾動和一個按鈕被點擊(即不低於440px),整個的UIScrollView被「移動」下來,而所請求的視圖控制器被呈現得到幾分laggy。當這個視圖控制器被解散時,滾動視圖保持較低。如果我將它向上滾動並按下一個按鈕,它會奇蹟般地跳到它應該在的位置。
現在最有趣的部分!
如果我改變離開的UIScrollView的原點(1,0),這個問題自敗!有什麼可能造成這個問題?
添加一些代碼:
[horizontalSV setDelegate:self];
[horizontalSV setContentSize:horizontalContentView.frame.size];
[horizontalSV addSubview:horizontalContentView]; // View containing vertical scroll views, it's set up in IB
[horizontalContentView setFrame:CGRectMake(-1, 0, 961, 440)]; // This is now used for the hack
// Now imagine three of these
firstSVcontent = [[VerticalContentView alloc] init]; // Setting the content view
[firstSVcontent setTitle:title];
[firstSVcontent setButtons:blahblah];
[firstVerticalSV setContentSize:firstSVcontent.view.frame.size]; // Setting vertical scroll view
[firstVerticalSV addSubview:firstSVcontent.view];
OK,我發現周圍的工作:使包含垂直滾動UIScrollViews 1像素寬的觀點,然後作出它的origin.x = -1。 但是,我仍然想知道是否有人知道這到底是怎麼回事。 – 2012-07-08 21:11:38
這似乎是hack-y。你能粘貼一些代碼嗎? – achi 2012-07-08 21:17:57
@EliGregory它不幸的是。我添加了設置代碼。 – 2012-07-08 21:30:02