首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >添加到UIScrollView时,UIPickerView不能滚动!

添加到UIScrollView时,UIPickerView不能滚动!
EN

Stack Overflow用户
提问于 2011-01-25 20:33:40
回答 6查看 4.6K关注 0票数 4

我已经在UIScrollView中添加了UIPickerView,但现在UPickerView不能滚动。当我将它添加到self.view中时,它会平滑地滚动。下面是我的代码

代码语言:javascript
复制
monthsArray = [[NSArray alloc] initWithObjects:@"Jan",@"Feb",@"Mar",@"Apr",@"May",@"Jun",@"Jul",@"Aug",@"Sep",@"Oct",@"Nov",@"Dec",nil];

UIPickerView *objPickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(185,350,100,100)];
    objPickerView.userInteractionEnabled=YES;
    objPickerView.delegate = self;
    objPickerView.showsSelectionIndicator = YES; 
    [objScrollView addSubView:objPickerView];

我已经包含了委托及其方法。看一下这个问题。提前谢谢。

如果我说不清楚,请告诉我。

EN

回答 6

Stack Overflow用户

发布于 2012-02-06 03:23:01

出于同样的目的,我使用了UIPickerView的一个子类,但我的要简单得多:

代码语言:javascript
复制
@implementation ScrollablePickerView

- (UIScrollView *)findScrollableSuperview {

    UIView *parent = self.superview;
    while ((nil != parent) && (![parent isKindOfClass:[UIScrollView class]])) {
        parent = parent.superview;
    }
    UIScrollView* scrollView = (UIScrollView *)parent;

    return scrollView;
}

- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent*)event {
    UIScrollView* scrollView = [self findScrollableSuperview];

    if (CGRectContainsPoint(self.bounds, point)) {
        scrollView.canCancelContentTouches = NO;
        scrollView.delaysContentTouches = NO;
    } else {
        scrollView.canCancelContentTouches = YES;
        scrollView.delaysContentTouches = YES;
    }

    return [super hitTest:point withEvent:event];
}

@end

效果很不错--至少对我来说是这样。

票数 4
EN

Stack Overflow用户

发布于 2011-04-22 21:08:19

我猜这可能会解决你的问题(一定要检查评论):

http://www.alexc.me/uiscrollview-and-uidatepicker/153/

基本上,您必须在滚动视图上将DelaysContentTouches和CanCancelContentTouches设置为NO,因为它会从选择器中窃取触摸事件。

票数 1
EN

Stack Overflow用户

发布于 2011-01-25 20:48:50

UIPickerView根本不是为滚动或移动而设计的。您应该放置一些文本字段,并在用户点击时显示UIPickerView。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4793535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档