2012-08-23 65 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