2
我正在構建一個應用程序,其中的一部分允許您滾動瀏覽不同的圖像進行覆蓋。我有一個分段控件來創建一種分層系統,其中每個分段允許您再次滾動圖像並構建圖層。由於某種原因,第一張圖像總是會粘住,當我返回到圖層時,視圖會重置爲原始位置,但也會保存最後一個位置?保存UIScrollView的視圖
這是我的代碼。
- (void)layerControl
{
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
scroll.pagingEnabled = YES;
NSInteger viewCount = 8;
for (int i = 0; i < viewCount; i++) {
CGFloat yOrigin = i * self.view.frame.size.width;
UIImageView *filterViewOverlay = [[UIImageView alloc] initWithFrame:CGRectMake(yOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)];
[filterViewOverlay setImage:[filterManager objectAtIndex:i]];
[scroll addSubview:filterViewOverlay];
//[filterViewOverlay release];
}
scroll.contentSize = CGSizeMake(self.view.frame.size.width * viewCount, self.view.frame.size.height);
[self.view addSubview:scroll];
[scroll autorelease];
//Determine the current filter in view of the scroll view
CGFloat pageWidth = scroll.frame.size.width;
int cFilter = floor((scroll.contentOffset.x - pageWidth/2)/pageWidth) + 1;
currentFilter = cFilter;
}
//Method to add a filter to the page
- (void)addFilter:(id)sender
{
UISegmentedControl *filterController = (UISegmentedControl *)sender;
switch ([filterController selectedSegmentIndex])
{
case 0: self.layerControl;
case 1: self.layerControl;
case 2: self.layerControl;
case 3: self.layerControl;
case 4: self.layerControl;
case 5: self.layerControl;
default: NULL;
}
}
非常感謝!我是新的Objective-C編程,所以我會記住你的.dot語法建議。再次感謝! –
我可以只問案例開關'案例0:scroll = self.scroll1' - 'scroll1'是什麼引用?歡呼聲 –
self.scroll1只是引用了您將在該類的標題中定義的保留屬性。 你會有scroll1,scroll2 ... scroll6,每個圖層都會保存對每個圖層的滾動視圖的引用。 – tobyc