0

で使用UIImageViewUIScrollViewて画像ギャラリーを表示しています。
これが私のコードです:

    [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。私は多くのことを検索しましたが、あまり運がありませんでした。スクロールでスワイプを認識しにくいことだけは理解しています。

私はこのジェスチャーのことは初めてです。誰かが私に何をすべきか提案できますか?
特定のイメージタグを取得する他の方法はありますか? または、このジェスチャのみを使用する必要がある場合は、どうすればよいですか?

どんな助けでも大きな助けになります..!
ありがとうございました。

4

1 に答える 1

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. もう 1 つのオプションは、画像の数に応じて imageView のフレームを設定し、次に imageView の X 座標を単純に取得して、表示されている画像を計算することです。たとえば、

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

次に、scoll の位置を取得して、表示されている画像を特定します。

また、これを行う別の方法は、scrollView のデリゲートをメソッド内に実装することだと思います

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

ユーザーがスクロールした回数をカウントする変数を用意し、表示されている画像を計算します。設定をお忘れなく

scrollView.delegate = self;
于 2012-08-23T09:18:38.823 に答える