首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将触摸事件发送到UIView on iOS

如何将触摸事件发送到UIView on iOS
EN

Stack Overflow用户
提问于 2018-09-14 09:18:08
回答 4查看 3.4K关注 0票数 2

我在视图上加上了一个轻拍的手势。当视图打开时,调用一个内部方法,并弹出一个警报。

现在我想发送触摸事件来模拟手指触摸在这个视图上。我怎么能这么做?

===============

谢谢大家。

我想我应该把问题描述清楚。我正在做ReplayKit on iOS12的工作。我们可以将RPSystemBroadcastPickerView添加到自定义视图中。在我的项目中,单击一个按钮,RPSystemBroadcastPickerView init并在我的视图中添加,点击RPSystemBroadcastPickerView,选择条目,然后单击Start广播。

我想要做的是,当我单击按钮时,它会自动跳转到选择项界面。就像点击按钮后将触摸事件发送到RPSystemBroadcastPickerView一样。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-09-21 09:22:52

代码语言:javascript
复制
UIButton *btnInPicker = nil;
for( UIView *_subView in self.broadcastPicker.subviews) {
    if( [_subView isKindOfClass:[UIButton class]] ) {
        btnInPicker = (UIButton *)_subView;
        break;
    }
}


if(btnInPicker) {
    [btnInPicker sendActionsForControlEvents:UIControlEventTouchDown];
}

但是它有一个问题:不平衡的调用开始/结束外观转换

票数 2
EN

Stack Overflow用户

发布于 2020-08-07 14:26:20

首先,在屏幕的一个位置创建一个没有高度和宽度的RPSystemBroadcastPickerView,不要显示它的图标并将它添加到控制器(对于我来说是topController),然后选择RPSystemBroadcastPickerView的大多数顶部视图即按钮,然后调用它的动作-> theBroadcastPicker现在不需要点击屏幕就可以打开。

代码语言:javascript
复制
 var  broadCastPicker = RPSystemBroadcastPickerView(frame: CGRect(x: 0, y: 0, width: 0, height: 0))
topController.view.addSubview(broadCastPicker!)
var tap = broadCastPicker?.subviews.first as! UIButton
tap.sendActions(for: .touchUpInside)
票数 1
EN

Stack Overflow用户

发布于 2018-09-14 09:31:09

您可以创建自定义视图并覆盖以下方法.

代码语言:javascript
复制
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event;
- (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event;

Swift版本

func touchesBegan(Set,with: UIEvent?) 告诉此对象在视图或窗口中发生了一个或多个新的触摸。

func touchesMoved(Set,with: UIEvent?) 当一个或多个与事件相关的触摸发生更改时,通知响应方。

func touchesEnded(Set,with: UIEvent?) 当一个或多个手指从视图或窗口升起时,通知响应者。

func touchesCancelled(Set,with: UIEvent?) 当系统事件(如系统警报)取消触摸序列时,通知响应程序。

有关更多详细信息,请参阅此链接.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52328761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档