-1

我是使用 swift 的新手,创建它时遇到问题

我正在使用 swift 2 XCode 7

我在滚动视图的底部有一个按钮来提交我放在上面的所有文本字段,但是当我点击按钮时,我必须按住几秒钟才能点击按钮。我在几个网络上搜索了一个解决方案,有一个解决方案说未选中Delays Content Touches但我的滚动视图变得太难滚动所以我检查了另一个解决方案说创建一个自定义 ScrollView,但是在我创建它之后,我无法点击我的按钮。

这是我找到的几个网站,但没有一个工作

UIScrollView 中的 UIButton 触摸延迟

UIButton在iOS7中没有显示突出显示 - Swift

Swift 中的子类 UIScrollView 用于触摸开始和触摸移动

请给我一些关于如何解决此问题的示例的提示

任何帮助表示赞赏

4

2 回答 2

-1

如果按钮位于表格视图的底部,您始终可以添加一行,其中包含一个充当按钮的单元格。或者将按钮添加到 tableview 页脚。

于 2016-05-12T03:04:50.323 回答
-1

解决它的最好方法是将按钮和滚动视图框架分开。并且操作系统不会检查触摸事件是针对按钮还是针对滚动视图。

更新:

我想知道您的按钮是滚动视图的子视图。因为我测试了这个视图层次结构并没有得到你的问题:

在此处输入图像描述

更新2: 你也可以像上面那样做。同时,您应该在滚动视图滚动时移动该按钮。这看起来就像他们在一起。

另一种解决方案是改变响应链。- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event您可以在中获取命中事件UIView。如果该点在按钮的框架中,您应该点击测试按钮并返回该结果。像这样:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
    if (!self.clipsToBounds && !self.hidden && self.alpha > 0.01) {
        CGPoint point = [button convertPoint:point fromView:scrollView];
        if (button frame contains point) {
            UIView *result = [button hitTest:point withEvent:event];
            if (result != nil) {
                return result;
            }
        } else {
            // hit the scroll view area outside button
        }
    }

    return nil;
}
于 2016-05-12T02:49:25.607 回答