2011-11-20 28 views
2

画像をスクロールするUIScrollViewを使用するアプリケーションを作成し、新しいビューを読み込んで新しい画像レイヤー(Photoshopのレイヤーのようなビット)を使用する分割コントロール - 何らかの理由でレイヤーが選択され、イメージが選択されると、ユーザーがそれを返したときに最後にロードされた位置に移動します。UIScrollViewの位置を保存して読み込みます

また、私のジェスチャー認識やUIScrollViewがロードされているときにUIAlertViewを使用することはできません。なぜ誰が知っていますか?ここで

は私のコードです....そして

- 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

関連する問題