我需要的是這樣的如何在一個UIScrollView非滾動內容
+ scrollview
|
|__ moving content
|
|__ non moving content
棘手的部分是我在修改現有的代碼,我不能使用 父滾動視圖設置「不移動的內容」,因爲它是孩子。非移動內容 必須是滾動視圖子項。我正在考慮將它附加到背景視圖,但我不知道如何訪問UIScrollview的背景視圖。
我需要的是這樣的如何在一個UIScrollView非滾動內容
+ scrollview
|
|__ moving content
|
|__ non moving content
棘手的部分是我在修改現有的代碼,我不能使用 父滾動視圖設置「不移動的內容」,因爲它是孩子。非移動內容 必須是滾動視圖子項。我正在考慮將它附加到背景視圖,但我不知道如何訪問UIScrollview的背景視圖。
我相信這樣做的「推薦」方法是覆蓋自定義UIScrollView子類中的layoutSubviews。如果您是開發人員計劃成員,那麼在2010年WWDC會議中,您應該能夠獲得這一點(IIRC)。
假設您不能繼承UIScrollView的子類(根據您對修改現有代碼的限制),您可以執行以下操作。
讓「staticView」是「非移動內容」您想保留固定:
UIView *staticView;
創建伊娃(可能是在您的視圖控制器),以保持其初始中心:
CGPoint staticViewDefaultCenter = [staticView center]; // Say, in viewDidLoad
如果您的視圖控制器不是已經存在的滾動視圖的代表,請執行如下操作:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGPoint contentOffset = [scrollView contentOffset];
CGPoint newCenter = CGPointMake(staticViewDefaultCenter.x + contentOffset.x,
staticViewDefaultCenter.y + contentOffset.y);
[staticView setCenter:newCenter];
}
這將涵蓋可滾動視圖的簡單情況。處理可縮放視圖會有點棘手,並且部分取決於你如何實現了viewForZoomingInScrollView:方法,但是遵循類似的過程(當然在scrollViewDidZoom中這一次:當然)。
我還沒有想過通過在你的靜態視圖上進行轉換的含義 - 在這種情況下你可能還得做一些操作。