2011-11-20 88 views
2

我創建的應用程序使用UIScrollView滾動瀏覽圖像和加載新視圖並允許新圖層的新分層控件(像Photoshop分層一樣) - 由於某些原因,當我點擊回到圖層上,它會記住位置,但會創建一個新圖層....如何阻止這種情況發生,因此一旦選擇了圖層並選擇了一個圖像,當用戶返回它時會轉到上次加載的位置?保存並加載UIScrollView的位置

此外,作爲一個方面......我不能使用我的手勢識別或UIAlertView UIScrollView加載時?有誰知道爲什麼?

這裏是我的代碼....並提前:)

- layerControl:(NSInteger)index 
{ 
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
scroll.pagingEnabled = YES; 
NSInteger viewCount = 15; 
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 release]; 

switch (index) 
{ 
    case 0: scroll = self.scroll1; 
    case 1: scroll = self.scroll2; 
    case 2: scroll = self.scroll3; 
    case 4: scroll = self.scroll4; 
    case 5: scroll = self.scroll5; 

} 

/* if (scroll == nil) 
{ 
    [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
    scroll.pagingEnabled = YES; 
    NSInteger viewCount = 15; 
    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]; */ 


} 
} 



//Method to add a filter to the page 
- (void)addFilter:(id)sender 
{ 
    UISegmentedControl *filterController = (UISegmentedControl *)sender; 

[self layerControl:[filterController selectedSegmentIndex]]; 
} 

- (UIImage*)saveImages 
{ 

UIImage *image = [UIImage imageNamed:@"UrbanPhoto##1"]; 

UIGraphicsBeginImageContext(self.view.bounds.size); 
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

return image; 

} 

回答

2

儘量節約UIScrollView.contentOffset值用戶行動前,然後在完成動作後恢復該值的感謝。

+0

謝謝,你知道我怎麼可以使用1 scrollView並重新初始化,當按鈕被按下,如果他們以前已經被初始化,然後他們加載了以前的配置?乾杯! –

+0

將引用保存在「NSMutableDictionary」或類似文件中。當你需要加載一個,只需檢查'NSMutableDictionary objectForKey:'是否返回你需要的密鑰'nil'。如果是,則初始化一個新的'UIScrollView'。否則,只需使用舊的。 – Ben