标签: touch-event

如何以编程方式假冒触摸事件到UIButton?

我正在编写一些单元测试,由于这个特定应用程序的性质,重要的是我尽可能地提高UI链条.所以,我想要做的是以编程方式触发按钮按下,就像用户按下按钮一样GUI.

(是的,是的 - 我可以调用IBAction选择器,但是,再次,这个特定的应用程序的性质使我很重要的是我伪造实际的按钮按下,这样就IBAction可以从按钮调用它本身.)

这样做的首选方法是什么?

iphone uibutton touch-event ios

181
推荐指数
6
解决办法
10万
查看次数

处理UILabel中的触摸事件并将其连接到IBAction

好的,所以我UILabel在界面构建器中创建了一些显示"tap to begin"的默认文本.

当用户点击UILabel我想要它触发IBAction方法时: -(IBAction)next;它更新标签上的文字以说出新的东西.
如果这允许我简单地将连接从我的方法拖到我的标签然后选择内部触摸,就像按钮一样,那将是非常方便的.但是,唉,没有雪茄.

所以无论如何,我想我的问题是,我是否必须继承UILabel才能使其工作?或者是否有某种方法可以在标签上拖动按钮,但使其为0%不透明.或者是否有一个我想念的更简单的解决方案?

iphone interface-builder uilabel touch-event ios

100
推荐指数
4
解决办法
9万
查看次数

如何区分onTouchEvent()中的move和click?

在我的应用程序中,我需要处理移动和单击事件.

单击是一个ACTION_DOWN操作的序列,几个ACTION_MOVE操作和一个ACTION_UP操作.理论上,如果您获得ACTION_DOWN事件然后获得ACTION_UP事件 - 这意味着用户刚刚单击了您的视图.

但实际上,这个序列在某些设备上不起作用.在我的三星Galaxy Gio上,只需单击我的视图:ACTION_DOWN,几次ACTION_MOVE,然后ACTION_UP即可获得此类序列.即我使用ACTION_MOVE动作代码获得了一些无法预料的OnTouchEvent激活.我从未(或几乎从不)获得序列ACTION_DOWN - > ACTION_UP.

我也不能使用OnClickListener,因为它没有给出点击的位置.那么如何检测点击事件并将其与移动区分开来呢?

android event-handling touch-event android-event

70
推荐指数
6
解决办法
4万
查看次数

onTouchevent()vs onTouch()

在使用onTouchEvent和onTouch进行了多次实验后,我发现onTouch可以在任何地方工作(无论是在活动中还是在视图中),只要您声明了接口并将Listener放在正确的位置即可!另一方面,onTouchEvent仅适用于View!我的假设是否正确?这是真正的区别吗?

android ontouchlistener touch-event

58
推荐指数
3
解决办法
4万
查看次数

将BottomSheetBehavior与内部CoordinatorLayout一起使用

v. 23.2引入了设计支持库BottomSheetBehavior,它允许协调员的子节点作为底部工作表(可从屏幕底部拖动​​的视图).

我想做的是作为底层视图,具有以下视图(典型的协调器+折叠的东西):

<CoordinatorLayout
    app:layout_behavior=“@string/bottom_sheet_behavior”>

   <AppBarLayout>
        <CollapsingToolbarLayout>
           <ImageView />
        </CollapsingToolbarLayout>
    </AppBarLayout>

    <NestedScrollView>
        <LinearLayout>
            < Content ... />
        </LinearLayout>
    </NestedScrollView>

</CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

不幸的是,底部工作表视图应该实现嵌套滚动,否则它们不会获得滚动事件.如果您尝试使用主活动然后将此视图作为底部工作表加载,您将看到滚动事件仅作用于纸张的"工作表",并且有一些奇怪的行为,您可以看到是否继续阅读.

我很确定这可以通过子类化来处理CoordinatorLayout,甚至可以通过子类化来处理BottomSheetBehavior.你有什么提示吗?

一些想法

  • requestDisallowInterceptTouchEvent() 应该使用,在某些条件下窃取父母的事件:

    • AppBarLayout偏移量> 0时
    • AppBarLayout偏移量是== 0时,我们正在向上滚动(想想它一秒钟,你会看到)
  • 可以通过设置OnOffsetChanged内部应用栏来获得第一个条件;

  • 第二个需要一些事件处理,例如:

    switch (MotionEventCompat.getActionMasked(event)) {
        case MotionEvent.ACTION_DOWN:
            startY = event.getY();
            lastY = startY;
            userIsScrollingUp = false;
            break;
        case MotionEvent.ACTION_CANCEL:
        case MotionEvent.ACTION_UP:
            userIsScrollingUp = false;
            break;
        case MotionEvent.ACTION_MOVE:
            lastY = event.getY();
            float yDeltaTotal = startY - lastY; …
    Run Code Online (Sandbox Code Playgroud)

android ontouchlistener touch-event android-support-library android-support-design

54
推荐指数
1
解决办法
9030
查看次数

touchend事件属性

如果我通过移动设备捕获所有touchend事件:

$(document.body).bind('touchend', function (e) {
var touch = e.touches[0]; // doesnt work
...
Run Code Online (Sandbox Code Playgroud)

我需要从e参数中获取touch.screenX,touch.screenY,touch.clientX和touch.clientX.我见过的所有例子都表明e.touches将是一个集合,你可以通过触摸细节获得e.touches[0].在我对ipad的测试中,e.touches总是未定义的.我没有使用任何jquery插件.

还尝试了e.targetTouches,这也是未定义的.

有人可以帮忙吗?

javascript jquery mobile-safari touch touch-event

48
推荐指数
2
解决办法
5万
查看次数

如何处理片段上的触摸事件?

我正在构建一个我需要处理触摸事件的界面.特别是我能够将它们仅启用到片段中的受限区域.为了更好地理解问题,尊重标准和我的应用程序的目标,我计划了导航抽屉,它假设存在许多片段(而不是活动).触摸事件的活动很容易实现,另一方面,我在互联网上读到,片段可能会成为一个问题.

我的应用程序在体系结构级别如下: - MainActivity.java - NavigationDrawer.java - TestFragment.java(现在单个片段,等待解决问题)

我没有找到解释如何做得好(或如何解决问题)的解决方案或教程.然后我问你,简化问题只是" 在片段中启用触摸事件(在这种情况下为getPressure()) ".下面是一些可能有助于解决问题的代码:

TestFragment

public class TestFragment extends Fragment {
    private static final String ARG_SECTION_NUMBER = "section_number";

    public static TestFragment newInstance(int sectionNumber) {
        TestFragment fragment = new TestFragment();
        Bundle args = new Bundle();
        args.putInt(ARG_SECTION_NUMBER, sectionNumber);
        fragment.setArguments(args);
        return fragment;
    }

    public TestFragment() {}

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_test, container, false);
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

android ontouchlistener touch-event android-fragments

42
推荐指数
1
解决办法
6万
查看次数

滑动时防止touchstart

我在移动设备上有一个可滚动的列表.他们希望人们能够通过滑动滚动列表,并通过点击选择一行.

抓住了两者.如果您实际滚动列表,我不希望选择一行.这是我发现的:

滚动时不触发:

  • 点击
  • 鼠标松开

滚动时是否触发:

  • 鼠标按下
  • touchstart
  • touchend

简单的解决方案就是坚持点击事件.但我们发现,在某些黑莓设备上,touchstart之间存在非常明显的延迟,然后触发点击或鼠标.这种延迟足以使其在这些设备上无法使用.

所以这给我们留下了其他选择.但是,使用这些选项,您可以滚动列表而不触发您触摸的行以启动滚动.

解决此问题的最佳做法是什么?

javascript jquery scroll touch touch-event

40
推荐指数
4
解决办法
5万
查看次数

点击和点击事件有什么区别?

我正在开发一个在Android/iOS和台式电脑上运行的应用程序.

我应该使用clicktap举办活动吗?

它们之间有什么区别?

桌面上的"点击"是否会起作用?如果没有,(我必须使用click)我是否错过了tap有什么优势click

jquery touch-event jquery-mobile

40
推荐指数
3
解决办法
7万
查看次数

检查touchend是否在拖动后出现

我有一些代码可以更改表的类.在手机上,有时桌子对于屏幕来说太宽,用户将拖动/滚动以查看内容.但是,当他们触摸并拖动桌子时,它会触发每次拖动的触发.

我如何测试看看触摸是否是由于触摸拖动而产生的?我尝试跟踪dragstart和dragend,但我无法让它工作,这似乎是一种不优雅的方法.有什么我可以添加到下面的内容基本上可以确定,"这个touchend是否已经结束了?"

$("#resultTable").on("touchend","#resultTable td",function(){ 
        $(this).toggleClass('stay');
});
Run Code Online (Sandbox Code Playgroud)

我提前感谢您的帮助.

PS - 使用最新的jquery,而常规点击工作,与touchend相比,它非常慢.

javascript jquery touch touch-event ios

37
推荐指数
1
解决办法
2万
查看次数