2012-08-23 103 views
0

我使用UIImageViewUIScrollView顯示圖片庫。
這裏是我的代碼:UISwipeGestureRecognizer UIImageView在UIScrollView

[scrollView1 setBackgroundColor:[UIColor blackColor]]; 
    [scrollView1 setCanCancelContentTouches:NO]; 
    scrollView1.indicatorStyle = UIScrollViewIndicatorStyleWhite; 
    scrollView1.clipsToBounds = YES; 
    scrollView1.scrollEnabled = YES; 
    scrollView1.pagingEnabled = YES; 


NSUInteger i; 
for (i = 0; i <= kNumImages; i++) 
{ 
    imageView.userInteractionEnabled = YES; 

    imageName = [NSString stringWithFormat:@"image%d.jpg", i]; 
    UIImage *image = [UIImage imageNamed:imageName]; 
    imageView = [[UIImageView alloc] initWithImage:image]; 
    imageView.contentMode = UIViewContentModeScaleAspectFit; 

    CGRect rect = imageView.frame; 
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
    { 
     rect.size.height = kScrollObjHeight; 
     rect.size.width = kScrollObjWidth; 

    } 
    else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
    { 
     rect.size.height = kScrollObjHeight_ipad; 
     rect.size.width = kScrollObjWidth_ipad; 
    } 

    imageView.frame = rect; 
    imageView.tag = i; 
    [scrollView1 addSubview:imageView]; 
} 

現在我有一個保存按鈕保存圖像庫。爲此我必須在滾動上找到每個圖像標籤。我認爲可以通過檢測UIImageView上的滑動手勢並可以獲得imageView.tag。 我搜索了很多東西,但沒有得到太多的運氣。我明白只是在滾動中很難識別滑動。

我是新來的這個手勢的東西。任何人都可以建議我該怎麼做?
有沒有其他的方式來獲得特定的圖片?或者,如果我必須只用這個手勢來減肥,那又怎麼樣?

任何幫助將是一個很大的幫助..!
謝謝。

+0

凹凸... .. .. .. – iUser

回答

2

在我看來,你有兩個選擇:

1. 添加UISwipeGestureRecognizer到您的UIImageView,並在它的操作方法改變的ImageView圖像。例如

UISwipeGestureRecognizer *mySwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] init]; 
[mySwipeGestureRecognizer addTarget:self action:@selector(gestureAction:)]; 
[imageView addGestureRecognizer:mySwipeGestureRecognizer]; 

-(void)gestureAction:(id)sender //Here you can also make some validations so to make sure the gesture is finished 
{ 
imageView.image = [UIImage imageNamed:@"someOtherImage"]; 
} 

然後只保存imageView的圖像。

2. 另一個選項將是根據圖像的數量來設置的ImageView幀,然後的simpy得到的ImageView X座標,以計算它是什麼圖像displaying.For例如,

for(int i=0; i < numeberOfImages; i++) 
{ 
imageView.frame = CGSizeMake(320*i,0,100,100); 
[self.view addSubview:imageView]; 
} 

然後得到scoll的位置來確定顯示哪個圖像。

另外,我覺得另一種方式來做到這將是實現滾動視圖的委託和方法

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 

有一個變量來計算多少次用戶滾動,然後計算一下圖像顯示。不要忘記設置

scrollView.delegate = self; 
+1

就個人而言,我會去與實施委託和計數可能時間用戶如何滾動...... –

+0

你是對的。我剛剛計算過滾動頁面編號n的工作。非常感謝你安德烈:)它完美的工作..! – iUser