当用户在 UIButton 上滑动时,UIScrollView 停止工作

Posted

技术标签:

【中文标题】当用户在 UIButton 上滑动时,UIScrollView 停止工作【英文标题】:When user swipes on a UIButton the UIScrollView stops working 【发布时间】:2014-03-14 11:22:17 【问题描述】:

我发现当我尝试滚动scrollivew 时,如果您拖动其中一个按钮,它会阻止scrollview 滚动。如果您正在拖动不包含任何内容的滚动视图的空白部分,它将滚动。有谁知道这个问题的解决方案吗?

我的 .h 文件只有一个滚动视图和顶部的图像:

@property (strong, nonatomic) IBOutlet UIScrollView *scrollView;
@property (strong, nonatomic) IBOutlet UIImageView *bodyImage;

我的 .m 文件有这个来启用滚动

- (void)viewDidLoad

[super viewDidLoad];
// Do any additional setup after loading the view.
[_scrollView setScrollEnabled:YES];
[_scrollView setContentSize:CGSizeMake(640, 1136)];



- (void)didReceiveMemoryWarning

[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.

然后我在图像顶部添加了一个按钮并将其推送到另一个视图控制器。

我明白为什么它只是单击按钮并转到下一个视图,因为按钮在顶部!我基本上只是希望用户能够滚动页面,当他/她实际点击时,它会转到下一个视图!

感谢大家的帮助,我真的很感激。

【问题讨论】:

【参考方案1】:

尝试将UIScrollView's delaysContentTouches 属性设置为NO

【讨论】:

我是否只在 -(void) viewDidLoad 中应用它?谢谢【参考方案2】:

当您拖动按钮时,UIButton 是触摸事件的 FirstResponder 视图。这就是为什么 scrollView 在拖动按钮时不滚动的原因。

按照@Hitendra 的建议,将 UIScrollView 的 delaysContentTouches 属性设置为 NO。这将主要解决问题.. :)

【讨论】:

【参考方案3】:

您能在此处添加一些示例代码吗...以便我们研究一下

【讨论】:

以上是关于当用户在 UIButton 上滑动时,UIScrollView 停止工作的主要内容,如果未能解决你的问题,请参考以下文章

UIButton:当isHighlighted = true时,我只能通过滑动手指来调用函数

屏幕左侧的 UIButton(在 iOS 7 导航滑动区域中)未突出显示

如何允许在 UIButtons 上滑动以滚动?

如何从 UIScrollView 内的 UIButton 传递延迟滚动手势?

仅当用户点击图像视图时,才在 UIScrollView 上显示 UIButton Done for Images

当用户开始在 UIImageView 上滑动时,UITableView 滑动操作不起作用