如何允许滑动UIButtons滚动?

时间:2014-02-26 23:52:13

标签: ios objective-c cocoa-touch uibutton

我的应用程序中有UIButtons的旋转木马菜单。一切都很好,除了按钮有点大,当手指拖过按钮时它不会滚动。拖动必须在当前位于旋转木马前方和中心的按钮之外进行。是否有一些设置我可以更改,以便我可以滑动按钮滚动并让它们也可以互动?

以下是创建按钮的代码:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 500.0f, 320.0f);
button.layer.cornerRadius = 8.0f;
button.layer.masksToBounds = NO;
button.layer.borderWidth = 0.0f;

button.layer.shadowColor = [UIColor blackColor].CGColor;
button.layer.shadowOpacity = 0.8;
button.layer.shadowRadius = 12;
button.layer.shadowOffset = CGSizeMake(12.0f, 12.0f);

[button setImage:(UIImage*)[buttons objectAtIndex:index] forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside];

1 个答案:

答案 0 :(得分:2)

确保UIScrollView属性canCancelContentTouches设置为YES

scrollView.canCancelContentTouches = YES;

此外,UIScrollView实现了方法touchesShouldCancelInContentView

  

如果view不是UIControl对象,则默认返回值为YES;   否则,它返回NO。

这意味着UIScrollView不会尝试取消阻止滚动的UIButtons中的触摸。此外,当内容视图对象为UIScrollView时,您可以继承touchesShouldCancelInContentView并覆盖YES以返回UIButton