我已经为iPhone创建了一个侧视图菜单,我已经使用集装箱船概念在父视图控制器中添加子视图控制器.当用户点击导航栏上的菜单按钮时,我只需更改子视图控制器的框架,使其像一个显示菜单一样设置动画,以便子视图控制器将其框架的一半剪裁到右侧.
现在我的问题是每当用户点击子视图控制器的任何部分时我只想通知其父视图控制器触发事件已在其子视图控制器上触发,以便父视图控制器可以重置子视图控制器的帧以使其动画化喜欢关闭半显示菜单.
我使用了tap手势并将其添加到子视图控制器子视图的每个子视图中.因此,在任何子视图上点击手势都会通知父视图控制器有关触摸事件的信息.
触摸事件适用于子视图控制器的主视图,但任何按钮上的任何触摸都无法识别TAP事件.
我不知道我在哪里误会.请帮助我如何通知父视图控制器其子视图控制器中的任何触摸.提前致谢.
iphone parentviewcontroller touch-event ios childviewcontroller
任何人都可以告诉我为什么touchenter事件在这段代码中不起作用.mouseenter在桌面上运行良好.应该这么简单,但我错过了一些东西.
这里的例子 - http://jsfiddle.net/gCEqH/6/
完整代码如下:
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<img id="myImg" src="http://jackiehutchings.com/wp-content/uploads/2011/09/g-plus-icon-96x96.png" />
<script>
$(window).load(function() {
$('#myImg').on("touchenter mouseenter", function(event){
alert('entered!');
});
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我有1个主视图和1 个子视图:
主视图> SubView
我认为主视图是从SubView "窃取"事件.
例如,当我点击SubView时,只有Main View GestureRecognizer会被激活.
这是我的自定义GestureRecognizer(拦截每个触摸事件):
import UIKit
import UIKit.UIGestureRecognizerSubclass
class MainGestureRecognizer: UIGestureRecognizer {
override func touchesBegan(touches: NSSet!, withEvent event: UIEvent!) {
super.touchesBegan(touches, withEvent: event);
//nextResponder() ??
state = UIGestureRecognizerState.Began;
}
override func touchesMoved(touches: NSSet!, withEvent event: UIEvent!) {
super.touchesMoved(touches, withEvent: event);
//nextResponder() ??
state = UIGestureRecognizerState.Changed;
}
override func touchesEnded(touches: NSSet!, withEvent event: UIEvent!) {
super.touchesEnded(touches, withEvent: event);
//nextResponder() ??
state = UIGestureRecognizerState.Ended;
}
override …Run Code Online (Sandbox Code Playgroud) 我们有一个 Android 应用程序,旨在安装在在崎岖地形中运行的车辆的仪表板上,所以一切都非常不稳定。我们发现在这种情况下在屏幕上点击一下是很困难的,因为点击通常被解释为小的拖拽。
我需要的是在手指出现之前有一点摆动的触摸事件被解释为点击,而不是拖动。我一直在阅读 Android 中“touch slop”的工作方式,我可以看到他们已经考虑到了这一点。我真正需要了解的是如何为 Androidbutton小部件的子类增加“触摸倾斜” 。
这可能只用几行代码吗?还是我需要自己实现onInterceptTouchEvent和“onTouchEvent”?如果是后者,谁能给我一些关于如何工作的指导?
我最近从React 0.10升级到了React 0.14.最初我收到的错误React.initializeTouchEvents不是函数.我读了一些文档,声称在最新版本的React中对初始化的需求已经消失了,所以我废除了它.但是,现在,我的项目中没有注册触摸事件.我需要做些什么才能让他们再次工作?
下面我已经包含了一些简单的测试代码,我写了这些代码来试验这个问题的解决方案.目前根本没有注册触摸事件.
我的主要js文件:
/** @jsx React.DOM */
var React = require('react');
var ReactDOM = require('react-dom');
var TestButton = require('components/common/testButton');
try {
var lander = (<TestButton/>);
ReactDOM.render(lander, document.getElementById('myContainer'));
}
catch (e) {
error.errorHandler(e);
}
Run Code Online (Sandbox Code Playgroud)
我的TestButton组件:
/** @jsx React.DOM */
var React = require('react');
var TestButton = React.createClass ({
getInitialState: function () {
return {
text: "Click Here!",
};
},
toggle: function () {
console.log('in toggle');
if (this.state.text == "Click Here!"){
this.setState({
text: "Good Job!",
});
} else …Run Code Online (Sandbox Code Playgroud) 我在 NestedScrollView 宽度下方有一个 ViewPager 一些顶部填充,以及 clipToPadding(false) 和透明背景(如图像)。
我的 ViewPager 无法获得触摸事件并且不起作用。
我怎么解决这个问题?
(我不能改变我的结构,也不能将 ViewPager 移动到 NestedScrollView 的上方或将 TopMargin 设置为 NestedScrollView)
嵌套滚动视图
nestedScrollView = new NestedScrollView(getContext());
nestedScrollView.setFillViewport(true);
nestedScrollView.setLayoutParams(scrollParams);
nestedScrollView.setClipToPadding(false);
Run Code Online (Sandbox Code Playgroud)
通过覆盖 NestedScrollView 和 Override onTouchEvent 解决了这个问题。(感谢@petrumo)
public class MyNestedScrollView extends NestedScrollView {
private boolean topZone = false;
public MyNestedScrollView(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
if(ev.getAction() == MotionEvent.ACTION_DOWN ){
topZone = (getPaddingTop() - getScrollY() > ev.getY());
}
if(topZone){
if(ev.getAction() == MotionEvent.ACTION_UP){
topZone = false;
}
return …Run Code Online (Sandbox Code Playgroud) android touch-event android-viewpager android-nestedscrollview
在横向,我使用myImageView.setImageBitmap(myBitmap)和使用ontouch侦听器,以getX及getY和调整的位置myImageView(同getRawX和getRawY).然后bitmapToMat,我使用构建MAT来使用OpenCV更多地处理图像.我找到了两个调整大小的场景,其中onTouch位置将在我触摸的位置绘制一个圆圈,但有时位置将位于Mat之外并导致NPE并在处理期间失败.
场景1: resize(myImageView.getWidth(), myImageView.getHeight())
场景2:resize(myImageView.getHeight(), myImageView.getWidth())和
x = x(myImage.getHeight()/myImageView.getWidth())
y = y(myImage.getWidth()/myImageView.getHeight())
Run Code Online (Sandbox Code Playgroud)
如果我不改变x,我可以点击NPE图像中的任何地方,但画出的圆圈远不在我触摸的地方.
处理后我matToBitmap(myMAT, newBitmap) 和myImageView.setImageBitmap(newBitmap).
我显然错过了一些东西,但有没有一个简单的方法来获得触摸位置并在MAT中使用该位置?任何帮助都是极好的!
问题:
我有一个问题,在整个应用程序中使用单击事件。该应用程序将在移动设备和网络上使用。我正在使用 Angular 6。
每次您在桌面上的浏览器上单击按钮或链接时,第一次单击都会起作用,但在移动设备上,有时单击不起作用。如果我错了,请纠正我,但我相信人们将其称为幽灵点击。
我认为这是 300 毫秒的延迟,但我尝试使用 Hammerjs 的 Tap 并尝试使用 FastClick,似乎这不是问题。
我尝试在 html 中使用 touchstart 而不是 click/tap ,它似乎解决了这个问题。
有没有办法将 mousedown 和 touchstart 相互绑定?有没有办法在桌面上使用“单击/鼠标按下”而在移动设备上使用“触摸启动”?
我还可以采取哪些其他方法来解决这个问题?
阅读此event_touchcancel文档后:
当触摸事件被中断时,将发生 touchcancel 事件。
不同的设备会在不同的操作中中断触摸事件,如果发生此“错误”,最好包含此事件以清理代码。
和w3c event-touchcancel。我还是很困惑。
“当触摸事件被中断时”是什么意思?有没有什么特殊情况会中断触摸事件?touchcancel事件什么时候会被触发?
每次用户点击我的应用程序中的任何可点击视图时,我都需要跟踪一个事件。我一般都想这样做,例如在我的主要活动中。
我知道我可以覆盖onUserInteraction()或者dispatchTouchEvent()但是即使对于不可点击的视图的点击,这些也正在运行。
我不需要在可点击视图之间进行区分,只要它是可点击的就足够了。
在理想情况下,我还会将向上按钮与其他点击区分开来。
这可能吗?
touch-event ×10
android ×4
javascript ×3
angular ×1
button ×1
dom ×1
dom-events ×1
html ×1
ios ×1
iphone ×1
java ×1
jquery ×1
mobile ×1
mouseevent ×1
opencv ×1
overriding ×1
reactjs ×1
swift ×1
touch ×1