我的应用程序中有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];
答案 0 :(得分:2)
确保UIScrollView
属性canCancelContentTouches
设置为YES
。
scrollView.canCancelContentTouches = YES;
此外,UIScrollView
实现了方法touchesShouldCancelInContentView
。
如果view不是UIControl对象,则默认返回值为YES; 否则,它返回NO。
这意味着UIScrollView
不会尝试取消阻止滚动的UIButtons
中的触摸。此外,当内容视图对象为UIScrollView
时,您可以继承touchesShouldCancelInContentView
并覆盖YES
以返回UIButton
。