Использовать жест внутри просмотра прокрутки (вывести содержимое из просмотра прокрутки с помощью жестов) - PullRequest
0 голосов
/ 23 марта 2011

Внутри моего UIScrollView у меня есть вид.В этом представлении есть несколько изображений.Я хотел бы перетащить изображения из моего скроллера (и просмотра) на главный экран.Однако получение изображений перед скроллером и просмотр приводит меня в замешательство.

Это часть моего кода:

- (void)viewDidLoad{

    //scroller properties
    scroller.contentSize = CGSizeMake(1300, 130);
    scroller.scrollEnabled = YES;
    scroller.directionalLockEnabled =YES;
    scroller.frame = CGRectMake(0, 874, 768, 130);
    [scroller setDelegate:self];

    UIView *contentContainer = [[UIView alloc] init];

    [scroller addSubview:contentContainer];
    [scroller addSubview:image1];
    [scroller bringSubviewToFront:image1];
    [speler1 release];

    UILongPressGestureRecognizer *longPress1 =
    [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressed:)];
    [image1 addGestureRecognizer:longPress1];
    [longPress1 release];

    UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc]  initWithTarget:self action:@selector(move:)];
    [panRecognizer setMinimumNumberOfTouches:1];
    [panRecognizer setMaximumNumberOfTouches:1];
    [panRecognizer setDelegate:self];
    [image1 addGestureRecognizer:panRecognizer];


}

-(void)longPressed:(UILongPressGestureRecognizer *)sender {

    [[self.view superview] bringSubviewToFront:image1];

}

-(void)move:(id)sender {

    //move the image

}

Я хотел бы привести изображения передпросмотры с помощью LongPressGestureRecognizer.PanGestureRecognizer заботится о перемещении изображения.Перетаскивание работает только внутри прокрутки.Кто-нибудь знает, как вывести мои изображения на передний план?

Помощь очень ценится

1 Ответ

0 голосов
/ 23 марта 2011

Мне удалось поместить изображение из скроллера в главный вид.Смотрите мой код ниже.

- (void)viewDidLoad{

    //scroller properties
    scroller.contentSize = CGSizeMake(1300, 130);
    scroller.scrollEnabled = YES;
    scroller.directionalLockEnabled =YES;
    scroller.frame = CGRectMake(0, 874, 768, 130);
    [scroller setDelegate:self];
    [scroller addSubview:image1];

    [image1 release];

    UILongPressGestureRecognizer *longPress1 =
    [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressed:)];
    [image1 addGestureRecognizer:longPress1];
    [longPress1 release];

    UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc]  initWithTarget:self action:@selector(move:)];
    [panRecognizer setMinimumNumberOfTouches:2];
    [panRecognizer setMaximumNumberOfTouches:2];
    [panRecognizer setDelegate:self];
    [image1 addGestureRecognizer:panRecognizer];


}

-(void)longPressed:(UILongPressGestureRecognizer *)sender {

    CGPoint location = [sender locationInView:self.view];
    [self.view addSubview:image1];
    image1.center = location;
}

-(void)move:(id)sender {

    //move the image
}

Теперь я хотел бы иметь возможность вернуть мои изображения обратно в мое прокручиваемое изображение.Я пытаюсь реализовать это с помощью touchesended и doubletap.Изображение будет помещено в его источник.Однако это не вернется в скроллер.Вот фрагмент метода touchedended.

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    [super touchesEnded:touches withEvent:event];

    UITouch *touch = [touches anyObject];

    if ([touch tapCount] == 2) {
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationBeginsFromCurrentState:YES];
        [UIView setAnimationCurve:UIViewAnimationCurveLinear];
        [UIView setAnimationDuration:0.20];
        [UIView commitAnimations];

        image1.transform = CGAffineTransformIdentity;
        image1.center = CGPointMake(20, 20);

        [self.view sendSubviewToBack:image1];

        return;
    }
}

Надеюсь, кто-нибудь может указать мне правильное направление для помещения изображения обратно в мой скроллер в том же месте, откуда оно пришло.заранее!

...