在我的应用程序中,我添加了3.2 SDK中提供的新手势识别器.一切似乎都正常工作,屏幕上的响应时间非常快.但由于某种原因,当我添加requireGestureRecognizerToFail一些手势时,触发手势时会出现非常明显的延迟.下面是我用来创建手势识别器的代码片段.有谁知道为什么会有延迟以及我如何解决它?我requireGestureRecognizerToFail用来防止SingleTap手势在用户执行时触发DoubleTap.
- (void)createGestureRecognizers {
//Single Finger Double-Tap
UITapGestureRecognizer *singleFingerDTap = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSingleDoubleTap:)];
singleFingerDTap.numberOfTapsRequired = 2;
[super addGestureRecognizer:singleFingerDTap];
//Single Finger Tap
UITapGestureRecognizer *singleFingerTap = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSingleTap:)];
singleFingerTap.numberOfTapsRequired = 1;
[singleFingerTap requireGestureRecognizerToFail:singleFingerDTap];
[self addGestureRecognizer:singleFingerTap];
//Two Finger Pan
UIPanGestureRecognizer *panGesture2 = [[UIPanGestureRecognizer alloc]
initWithTarget:self action:@selector(handlePanGesture2:)];
panGesture2.maximumNumberOfTouches = 2;
[super addGestureRecognizer:panGesture2];
//Single Finger Pan
UIPanGestureRecognizer *panGesture1 = [[UIPanGestureRecognizer alloc]
initWithTarget:self action:@selector(handlePanGesture1:)];
panGesture1.maximumNumberOfTouches = 1;
[panGesture1 requireGestureRecognizerToFail:panGesture2];
[super addGestureRecognizer:panGesture1];
[singleFingerDTap release];
[singleFingerTap …Run Code Online (Sandbox Code Playgroud) 我一直在关注Kinect for Windows发行说明和功能,因为我想在我的项目中加入手势识别.
在上面的页面中,第一行提到"Kinect for Windows SDK使开发人员能够创建支持手势和语音识别的应用程序".语音识别API随SDK一起提供,可以随时使用.但是,我认为SDK中没有可用的手势识别API.Skeleton Tracking的API可以很容易地使用,但是必须进行定制以获得手势识别.
我已经看过Windows Media Center的视频由手势等和其他应用程序控制.我想知道所有这些应用程序是否都是自定义构建的并且必须编写自己的手势识别代码.
目前,在我的项目中,我正在使用Codeplex的Kinect DTW手势识别.我有两个问题 - > 1)看起来非常性能占用,并且通过我的应用程序启用此功能,我的应用程序在一段时间后抛出OutofMemory异常(PC规格非常高).2)不能说系统的健壮性.有时为某些人工作而不为其他人工作.
我想如果API已经内置,那么切换到这些就好了.这些是可用的还是分辨率是什么?
我有Activity一个单独的Fragment:
getFragmentManager().beginTransaction().add(android.R.id.content, fragment1).commit();
Run Code Online (Sandbox Code Playgroud)
我的问题是,我如何检测手势?我试过OnTouchListener,也用onInterceptTouchEvent方法.基本上我想检测滑动.我SwipeGestureDetector看起来像这样:
public class SwipeGestureDetector extends SimpleOnGestureListener {
// ...
@Override
public boolean onDown(MotionEvent e) {
return true;
}
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) return false;
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
// right to left swipe
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) …Run Code Online (Sandbox Code Playgroud) 一整天,我都收到了这条非常明确的(不是讽刺)错误消息“值不能为空。参数名称:类型”我正在用头撞墙慢慢分解我的代码,直到我能找出问题的确切原因。经过冗长乏味的解构,我发现我的GestureRecognizers部分有错误。问题是我不小心输入了 Command 来尝试传递参数而不是CommandParameter.
我生成错误的原始代码如下所示。
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="Value_Tapped" Command="language" />
</Label.GestureRecognizers>
Run Code Online (Sandbox Code Playgroud)
更正后的代码是这样的:
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="Value_Tapped" CommandParameter="language" />
</Label.GestureRecognizers>
Run Code Online (Sandbox Code Playgroud)
我希望这会在将来对其他人有所帮助。
有没有人设法让UIGestureRecognizer工作在UIVc上,这是UIScrollView的子视图?我的回调似乎永远不会被调用.
举个简单的例子,我希望有一个分页滚动视图,在第三页上用UITapGestureRecognizer监听.但是我无法让它发挥作用.
我是这样做的:
self.scrollView = [[[UIScrollView alloc] initWithFrame:self.view.frame] autorelease];
self.scrollView.pagingEnabled = YES;
self.scrollView.contentSize = CGSizeMake(self.section1ScrollView.frame.size.width * 3, self.scrollView.frame.size.height); //3 pages
UIImageView *p0 = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"page0.png"]] autorelease];
[self.scrollView insertSubview:p0 atIndex:self.scrollView.subviews.count];
UIImageView *p1 = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"page1.png"]] autorelease];
//code to move it to the next page
[self.scrollView insertSubview:p1 atIndex:self.scrollView.subviews.count];
UIImageView *p2 = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"page2.png"]] autorelease];
//code to move it to the next page
[self.scrollView insertSubview:p2 atIndex:self.scrollView.subviews.count];
UITapGestureRecognizer *p2TapRegocnizer = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(p2Tapped:)] autorelease];
//p2TapRegocnizer.delegate = self; …Run Code Online (Sandbox Code Playgroud) iphone cocoa-touch gesture-recognition uiscrollview uigesturerecognizer
我有适用于Windows和MacOSX的Kinect和驱动程序.是否有任何使用OpenCV API从Kinect流式传输的手势识别示例?我试图在Xbox Kinect上实现类似于DaVinci原型,但在Windows和MacOSX中.
我有一个名为PhotoBoothController的类,我用它来使用手势操作图像.我在iPhone上运行时工作正常.但是当我在iPad上运行它时,我在UIPopoverController中显示PhotoBoothController.图像看起来很好,但我无法操纵它,因为我的手势似乎没有被识别.我不知道如何让UIPopoverController控制手势.
我提出了popovercontroller并配置了视图:
- (void)presentPhotoBoothForPhoto:(UIImage *)photo button:(UIButton *)button {
//Create a photoBooth and set its contents
PhotoBoothController *photoBoothController = [[PhotoBoothController alloc] init];
photoBoothController.photoImage.image = [button backgroundImageForState:UIControlStateNormal];
//set up all the elements programmatically.
photoBoothController.view.backgroundColor = [UIColor whiteColor];
//Add frame (static)
UIImage *frame = [[UIImage imageNamed:@"HumptyLine1Frame.png"] adjustForResolution];
UIImageView *frameView = [[UIImageView alloc] initWithImage:frame];
frameView.frame = CGRectMake(50, 50, frame.size.width, frame.size.height);
[photoBoothController.view addSubview:frameView];
//Configure image
UIImageView *photoView = [[UIImageView alloc] initWithImage:photo];
photoView.frame = CGRectMake(50, 50, photo.size.width, photo.size.height);
photoBoothController.photoImage = photoView;
//Add canvas
UIView *canvas = …Run Code Online (Sandbox Code Playgroud) objective-c gesture-recognition uipopovercontroller uigesturerecognizer ios
背景
我嵌入了一个UICollectionView内部,UIScrollView它的工作几乎完美.
目标
可滚动元素一旦到达contentViews的末尾就应该无缝地传递滚动.当我向下滑动UIScrollView时,它应向下滚动,以便UICollectionView占据屏幕的约90%,然后继续滚动collectionView.反之亦然,当我向上滚动collectionView并到达collectionView内容的顶部时,scrollview应该开始向上滚动.
问题
1)当我向上滚动集合视图时,它会滚动到顶部并停止.如果我向下滑动几次它仍会弹出collectionView而不是向上滚动scrollView.我必须再次"故意"点击collectionView,以便让父ScrollView向上滚动.
我想它与某些事情有关,CancelContentTouches但我无法得到正确的组合.
2)当我向下滚动时,滚动视图到达contentView的末尾时,它会停止并弹回.
注意:我意识到不建议在UIScrollView中放置UICollectionView.我尝试了下面列出的替代方案,但是通过将我的顶视图放在标题中我无法达到预期的效果.我希望能够独立滚动,所以我决定使用scrollview/collectionView组合.
查看层次结构
MainViewController
- ScrollView
- 配置文件统计
- CollectionViewContainerView
--- CollectionView
资源其他人希望将collectionViews放入scrollViews由于某种原因:
我试过它们,但它们不能用于我的用例.
gesture-recognition uiscrollview ios uiview-hierarchy uicollectionview
我们正在开发一个移动 (Android) 混合现实 (MR) 游戏项目,仅使用手势与虚拟对象进行交互。我们研究了可用于该项目的框架和 API。目前,我们认为最好的方法是使用 Google Media Pipe 进行多手跟踪,并使用 Vuforia 来创建 MR 环境。但由于 Vuforia 与 Unity 一起使用,而 MediaPipe 还没有 Unity 端口,因此我们不确定如何将所有这些结合起来。
您对我们可以用于此目的的其他框架有什么建议,或者您能否就如何继续进行提供任何想法?
gesture-recognition unity-game-engine augmented-reality vuforia android-augmented-reality
SWiftUI 中的 onTapGesture 不能可靠地工作。此示例显示了问题,即有时当您点击一个单元格时,背景会按原样变为灰色,而另一次相邻单元格发生变化,而其他时候根本没有任何反应。任何想法为什么?
struct ContentView: View {
@State var cellFg: [[Color]] = [
[.clear, .clear, .clear, .clear, .clear, .clear, .clear, .clear, .clear],
[.clear, .clear, .clear, .clear, .clear, .clear, .clear, .clear, .clear],
[.clear, .clear, .clear, .clear, .clear, .clear, .clear, .clear, .clear],
[.clear, .clear, .clear, .clear, .clear, .clear, .clear, .clear, .clear],
[.clear, .clear, .clear, .clear, .clear, .clear, .clear, .clear, .clear],
[.clear, .clear, .clear, .clear, .clear, .clear, .clear, .clear, .clear],
[.clear, .clear, .clear, .clear, .clear, .clear, .clear, .clear, .clear],
[.clear, .clear, .clear, …Run Code Online (Sandbox Code Playgroud) c# ×2
gesture ×2
ios ×2
kinect ×2
uiscrollview ×2
algorithm ×1
android ×1
cocoa-touch ×1
ipad ×1
iphone ×1
multi-touch ×1
null ×1
objective-c ×1
opencv ×1
swiftui ×1
vuforia ×1
wpf ×1