将 UIScrollView 放在 CollectionViewCell 上,但滚动视图无法滚动

Posted

技术标签:

【中文标题】将 UIScrollView 放在 CollectionViewCell 上,但滚动视图无法滚动【英文标题】:put UIScrollView on a CollectionViewCell but the scrollview can not scroll 【发布时间】:2015-05-28 07:24:43 【问题描述】:

我将UIScrollView 放在CollectionViewCell 上,但scrollview 无法滚动

#import <UIKit/UIKit.h>


@interface MyCollectionViewCell : UICollectionViewCell<UIScrollViewDelegate>

    IBOutlet UIScrollView *toolsScrollView;





@end

@implementation MyCollectionViewCell

- (id)initWithFrame:(CGRect)frame

    self = [super initWithFrame:frame];
    if (self) 
        // Initialization code
        //wangzheng
        self = [super initWithFrame:frame];
        if (self) 
            NSArray *nibView =  [[NSBundle mainBundle] loadNibNamed:@"MyCollectionViewCell"owner:self options:nil];
            UIView *bw = [nibView objectAtIndex:0] ;
            [self.contentView addSubview:bw];
            toolsScrollView.delegate=self;


            UIView *toolView1 = [[UIView alloc] init];
            toolView1.backgroundColor = [UIColor blackColor];
            toolView1.frame = CGRectMake(300, 0, 80, 150);
            [toolsScrollView addSubview:toolView1];


            toolsScrollView.delegate=self;
            [toolsScrollView setContentSize:CGSizeMake(400 * 2, toolsScrollView.frame.size.height)];
            toolsScrollView.showsVerticalScrollIndicator = NO;
            toolsScrollView.showsHorizontalScrollIndicator = NO;
            toolsScrollView.delegate = self;
            toolsScrollView.userInteractionEnabled=true;
            toolsScrollView.scrollEnabled=true;
        
        return self;
    
    return self;

IBOutlet UIScrollView *toolsScrollView 链接到 XIB 中的 UIScrollView

滚动视图不能滚动,函数scrollViewDidScroll永远不会被触发

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

    return;


【问题讨论】:

collectionView 不会从 scrollView 窃取触摸事件吗? UICollectionViewCell 是 UIView 的子类 你的collectionView中有相关代码吗? 【参考方案1】:

可能的问题:

    toolsScrollView 变量未连接且未指向有效的滚动视图,或者, 从 nib 加载后,toolsScrollView 的框架不正确。或者,

3.它实际上在滚动但不可见,因此出于测试目的启用了以下 -

toolsScrollView.showsVerticalScrollIndicator = YES;
toolsScrollView.showsHorizontalScrollIndicator = YES;

【讨论】:

以上是关于将 UIScrollView 放在 CollectionViewCell 上,但滚动视图无法滚动的主要内容,如果未能解决你的问题,请参考以下文章

将 UICollectionView 和 UITableView 放在 iOS 的 UIScrollView 中是一种好习惯吗?

UIScrollView + 在滚动屏幕之前将项目固定到顶部

UIScrollView 上的 Next Prev 按钮

CoreData:错误:无法在 NSManagedObject 类“Collect”上调用指定的初始化程序

约束 UIScrollView 平移?

将 UIVibrancyEffect 添加到 UIScrollview