启用语音后如何从自定义视图上的点击位置获取 CGPoint?

Posted

技术标签:

【中文标题】启用语音后如何从自定义视图上的点击位置获取 CGPoint?【英文标题】:How to get a CGPoint from a tapped location on a custom View When Voice Over Enabled? 【发布时间】:2017-05-24 07:17:30 【问题描述】:

我正在将我的应用设置为与旁白功能兼容。我有一个图表,我可以单击 -accessibilitiHint()。我需要确认双击时的用户操作,甚至可以通过accessibilityActivate() 获得。触摸点需要在单击时检索。

现在有什么方法可以在我的视图上执行单击时获取用户触摸点吗?

【问题讨论】:

在你的手势处理方法中写 CGPoint touchPoint = [gesture locationInView:yourView]; 【参考方案1】:

对于目标 C

第 1 步:将 TapeGesture 识别器添加到您的视图中

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureHandler:)];
tapGesture.delegate = self;   
[yourView addGestureRecognizer:tapGesture];

第二步:实现手势委托方法

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

    return YES;

第 3 步:实现手势处理程序

- (void)tapGestureHandler:(UITapGestureRecognizer *)gesture

    CGPoint touchPoint = [gesture locationInView:yourView];

【讨论】:

如果我在自定义视图中添加了单击手势识别器,要在单击时触发该方法,需要执行以下操作。 1)从方法accessibilityActivate()[默认]返回NO 2)双击视图。 (不符合我的要求)

以上是关于启用语音后如何从自定义视图上的点击位置获取 CGPoint?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用文本字段 UITableView 从自定义单元格中获取值?

如何从自定义列表视图中获取选定项目并在 toast 消息中打印?

Android:从自定义列表视图中单击的按钮获取列表视图项目

从自定义表格视图单元格获取数据到另一个 VC?

列表视图中的页脚按钮,如何从自定义列表适配器中获取值

Laravel 4.2 视图:从自定义位置发布