我在视图上加上了一个轻拍的手势。当视图打开时,调用一个内部方法,并弹出一个警报。
现在我想发送触摸事件来模拟手指触摸在这个视图上。我怎么能这么做?
===============
谢谢大家。
我想我应该把问题描述清楚。我正在做ReplayKit on iOS12的工作。我们可以将RPSystemBroadcastPickerView添加到自定义视图中。在我的项目中,单击一个按钮,RPSystemBroadcastPickerView init并在我的视图中添加,点击RPSystemBroadcastPickerView,选择条目,然后单击Start广播。
我想要做的是,当我单击按钮时,它会自动跳转到选择项界面。就像点击按钮后将触摸事件发送到RPSystemBroadcastPickerView一样。
发布于 2018-09-21 09:22:52
UIButton *btnInPicker = nil;
for( UIView *_subView in self.broadcastPicker.subviews) {
if( [_subView isKindOfClass:[UIButton class]] ) {
btnInPicker = (UIButton *)_subView;
break;
}
}
if(btnInPicker) {
[btnInPicker sendActionsForControlEvents:UIControlEventTouchDown];
}但是它有一个问题:不平衡的调用开始/结束外观转换
发布于 2020-08-07 14:26:20
首先,在屏幕的一个位置创建一个没有高度和宽度的RPSystemBroadcastPickerView,不要显示它的图标并将它添加到控制器(对于我来说是topController),然后选择RPSystemBroadcastPickerView的大多数顶部视图即按钮,然后调用它的动作-> theBroadcastPicker现在不需要点击屏幕就可以打开。
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)发布于 2018-09-14 09:31:09
您可以创建自定义视图并覆盖以下方法.
- (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?) 当系统事件(如系统警报)取消触摸序列时,通知响应程序。
有关更多详细信息,请参阅此链接.
https://stackoverflow.com/questions/52328761
复制相似问题