我试图找出一种方法来确定身体在2D环境中与另一个身体相撞的相对速度.
例如,如果一个物体在(1,0)处移动而另一个物体在其后面行进,则在(2,0)处从后面与其碰撞时,撞击相对于第一物体的速度为(1,0).
我需要一种方法,它采用两种速度,一种速度属于身体,速度被测量,另一种速度用于撞击身体并返回相对速度.
好的,我有这个设置
ScrollView HorizontalScrollView ImageView
我试图捕获图像视图上的doubleTap ..我的代码如下所示:
ImageView iv = (ImageView)findViewById(R.id.ImageViewID);
iv.setImageDrawable(iv.getResources().getDrawable(R.drawable.someimage));
// Gesture detection
detector = new GestureDetector(this,new SimpleOnGestureListener(){
//new myGestureClass());
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
System.out.println("SINGLE TAP");
return false;
}
@Override
public boolean onDoubleTap(MotionEvent arg0) {
// TODO Auto-generated method stub
System.out.println("DOUBLE TAP");
return false;
}
@Override
public boolean onDoubleTapEvent(MotionEvent arg0) {
// TODO Auto-generated method stub
System.out.println("DOUBLE TAP EVENT");
return false;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent arg0) {
// TODO Auto-generated method …Run Code Online (Sandbox Code Playgroud) 我创建了一个UITapGesture,其目标不是当前对象.稍后,当点击时,应用程序崩溃.
查看控制器.h:
@interface ViewController : UIViewController
{
IBOutlet UIImageView *iv;
}
@end
Run Code Online (Sandbox Code Playgroud)
查看控制器.c:
#import "ViewController.h"
#import "Target.h"
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
Target *t = [[Target alloc] init];
UITapGestureRecognizer *tgr = [[UITapGestureRecognizer alloc] initWithTarget:t action:@selector(gestureDone:)];
[iv addGestureRecognizer:tgr];
[iv setUserInteractionEnabled:YES];
}
@end
Run Code Online (Sandbox Code Playgroud)
Target.h:
@interface Target : NSObject
- (void)gestureDone:(UIGestureRecognizer *)gr;
@end
Run Code Online (Sandbox Code Playgroud)
Target.c:
@implementation Target
- (void)gestureDone:(UIGestureRecognizer *)gr
{
NSLog(@"Gesture!");
}
@end
Run Code Online (Sandbox Code Playgroud)
(我的XIB文件只包含一个图像...)当点击图像时,它会崩溃.例如,如果我将一个实例变量Target*t添加到我的视图控制器(并在viewDidLoad中删除本地声明),则不会出现任何问题.如果不这样做,我会在Target中覆盖dealloc,在那里放置一个NSLog,并且只要viewDidLoad完成执行就会看到,目标对象就是fred.
我做错了什么,还是有问题?(通常我不会遇到这个问题,因为我使用initWithTarget:self ...).
我有我的屏幕上许多意见(FrameLayouts) - 每个人都有一个SimpleOnGestureListener设置为onTouchListener.
当我点击其中一个视图时,我正确地触发了onSingleTapConfirmed方法,但我无法确定如何确定哪个视图被点击了?
有没有一种简单的方法可以从MotionEvent中执行此操作?
我想创建一个可以调用手势(滑动,捏等)的应用程序,而不必亲自做手势.
该按钮将位于webview旁边,以允许在其中调用手势.
我已经搜索了一种可能的方法来执行此操作,但无法找到并参考以编程方式调用手势.
有没有人对如何做到这一点有任何建议?
我正在为Android开发一个电影播放器.我想将mx播放器像手势一样实现到我的surfaceView(左侧向上/向下滑动,右侧向上/向下滑动,向右/向左滑动).我该怎么做??
我在我的应用程序中使用 ViewPager 创建用于滑动图像的滑块。一切工作正常,除了我必须双击缩放图像。但双击在 ViewPager 上不起作用。我尝试了很多解决方案但没有成功。任何帮助表示赞赏。
谢谢
我的代码:
@IBAction func handlePan(gesture: UIPanGestureRecognizer) {
let transition = gesture.translationInView(self.view)
switch gesture.state{
case .Changed:
if let view = gesture.view {
view.center = CGPoint(x: view.center.x + transition.x, y: view.center.y + transition.y)
}
gesture.setTranslation(CGPointZero, inView: self.view)
default:break
}
}
Run Code Online (Sandbox Code Playgroud)
所以我可以在屏幕上拖动一个大按钮。一切正常,直到我注释掉gesture.setTranslation(CGPointZero, inView: self.view)。
我以为一行代码只会告诉应用程序记住屏幕上按钮的最后位置并下次从那里移动,但是......
然后我在模拟器上再次运行该项目,当我单击该按钮并尝试移动一点时,该按钮只是朝同一方向飞行并消失在屏幕外,为什么?
以下代码段只是我真实情况的最小化版本。在我的实际情况中,这些GestureDetectors位于不同的小部件中。我的问题是,该onVerticalDragUpdate事件仅由内部 GestureDetector 接收。我什至behavior将内部的设置GestureDetector为HitTestBehavior.translucent,这意味着事件应该冒泡到父小部件。或者我有什么问题吗?
void main() {
debugPaintPointersEnabled = true;
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return GestureDetector(
onVerticalDragUpdate: (details) {
var test = "test";
},
child: GestureDetector(
behavior: HitTestBehavior.translucent,
onVerticalDragUpdate: (details) {
var test = "test";
},
child: Container(height: 100, width: 100, color: Colors.red),
));
}
}
Run Code Online (Sandbox Code Playgroud) 我WillPopScope在我的颤振应用程序中使用它并禁用了在 IOS 中非常有用的“向左滑动返回”。如何保留WillPopScope但重新添加 iOS 手势?
我正在使用 GestureRecognizers 在 Xamarin 中玩耍,我有以下代码:
<CollectionView
Grid.Row="0"
EmptyView="No player information"
ItemsSource="{Binding Voices, Mode=OneWay}">
<CollectionView.GestureRecognizers>
<TapGestureRecognizer
Command="{Binding CommandPlayerTapped}"
CommandParameter="hi"
NumberOfTapsRequired="1" />
</CollectionView.GestureRecognizers>
<CollectionView.ItemTemplate>
<DataTemplate>
<StackLayout>
<views:PancakeItemView Margin="5" BorderColor="Black">
<views:VoiceInfoContainerView Style="{StaticResource VoiceDisplayStyle}" />
</views:PancakeItemView>
</StackLayout>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
Run Code Online (Sandbox Code Playgroud)
MyTapGestureRecognizer绑定到一个简单的命令,它会弹出一个消息;没什么复杂的。DataTemplate 是一个 PancakeView 包装一个简单的视图来显示一些名称,如下所示:
同样,这并不复杂,但是,我觉得这可能是问题所在,因为我在网上找不到任何其他信息。
我尝试将手势代码放在其他元素中,但没有成功。关于为什么点击这些视图无法触发命令的任何想法?