Ios 如何在触摸事件上移动/重新排列视图位置?
假设,在我的窗口上有3个视图,主视图在背景中,主视图在前面 前面的每个视图都包含一些内容,我希望在触摸时作为视图的一部分移动。“移动”的意思是“相对于另一个视图重新排列位置”。触摸后,我想“拿起视图及其所有内容,并将其放置在当前由另一个视图占据的位置” 你从哪里开始做这样的事情?像这样的事情:Ios 如何在触摸事件上移动/重新排列视图位置?,ios,view,Ios,View,假设,在我的窗口上有3个视图,主视图在背景中,主视图在前面 前面的每个视图都包含一些内容,我希望在触摸时作为视图的一部分移动。“移动”的意思是“相对于另一个视图重新排列位置”。触摸后,我想“拿起视图及其所有内容,并将其放置在当前由另一个视图占据的位置” 你从哪里开始做这样的事情?像这样的事情: - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { UIView *touchedView = [[touche
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UIView *touchedView = [[touches anyObject] view];
CGPoint location = [[touches anyObject] locationInView:touchedView];
touchedView.center = location;
}
请参见UIResponder.h
中的这些方法:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;
首先,您需要创建一个手势识别器。大致如下:
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTap:)];
doubleTap.numberOfTapsRequired = 2;
[self addGestureRecognizer:doubleTap];
并将其添加到您想要的任何视图(或全部三个视图)。从它的声音来看,你的主要背景视图是最有意义的。然后创建doubleTap方法,该方法将使一个视图移动到另一个视图所在的位置:
-(void)doubleTap:(id)sender {
view1.frame = view2.frame;
[self bringSubviewToFrom:view1];
}
我还要确保您的所有子视图内容都根据您希望子视图的行为设置了autoresizingMask。那么,您将如何相对于其他视图移动屏幕上的视图?对不起,你能提供进一步的例子吗?