如何用手指在iphone中移动视图Objective-c

时间:2012-04-25 16:15:14

标签: iphone objective-c cocoa-touch touch swipe

我有这个观点,他的大小是1280 X 345,我在屏幕上左右移动它。 现在,我的主要问题是我如何用手指移动(不是swipeLeft / swipeRight)我希望它像iPhone IOS的​​主屏幕一样用我的手指移动。

现在,我正在使用此代码:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    CGPoint location = [touch locationInView:infoView];
    //[self.view setTransform:CGAffineTransformTranslate(CGAffineTransformIdentity, (location.x + self.view.frame.origin.x - dx), 0.0)];
    NSLog(@"touch: %f",location.x);

    infoView.frame = CGRectMake(infoView.frame.origin.x + location.x, 0, 1280, 345);
}

应该是当前的方式,但我不能说出来。 我也尝试在谷歌和这里找到答案,但是,如你所知..我没有找到有用的东西。

我也做了这个,所以你可以更好地理解它。

enter image description here

4 个答案:

答案 0 :(得分:8)

不要自己编写代码来执行此操作。使用UIScrollView。这就是它的设计目标。

答案 1 :(得分:1)

如果您想要与iPhone / iPad主屏幕具有相同的效果,则应使用UIScrollView并启用分页。

答案 2 :(得分:0)

如果你真的想因为某些原因自己处理它,避免使用UIScrollView,那么就有UIGestureRecognizers,特别是UIPanGestureRecognizer,它可以在一个地方利用大部分工作处理多个触摸事件。

答案 3 :(得分:-1)

我使用了UIPagecontrol和UIScrollView来实现它。非常容易和聪明的对象!