Q:当我给一个UIView添加UIScrollView,但是scrollView不能滚动

Posted

技术标签:

【中文标题】Q:当我给一个UIView添加UIScrollView,但是scrollView不能滚动【英文标题】:Q:When I add UIScrollView to a UIView, but the scrollView can not scroll 【发布时间】:2016-06-21 09:58:05 【问题描述】:

我在customView中添加了UIScrollView,我设置了右边的contentSize,但是scrollView不能滚动。

这是我的代码:

_scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 44, self.bounds.size.width, self.bounds.size.height - 44)];
//    _scrollView.translatesAutoresizingMaskIntoConstraints = NO;
//    _scrollView.userInteractionEnabled = NO;



_scrollView.contentSize = CGSizeMake(3 * self.bounds.size.width, self.bounds.size.height - 44 + 500);

_scrollView.contentOffset = CGPointMake((_orginSelectedIndex)*(self.bounds.size.width), 44);

_scrollView.pagingEnabled = YES;

_scrollView.scrollEnabled = YES;

[self addSubview:_scrollView];

/* add tableviews */
for (int i = 0 ; i < _titlesArr.count; i ++) 

    UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(i * self.bounds.size.width, 44, self.bounds.size.width, self.bounds.size.height - 44) style:UITableViewStylePlain];
    tableView.tag = 200 + i;
    tableView.backgroundColor = RandColor;
    [self addSubview:tableView];

我还记录了我的卷轴的contentSize

 NSLog(@"%@-s", NSStringFromCGSize(lml_pager.scrollView.contentSize));

有显示:

2016-06-21 17:39:07.272 LMLViewPager[7381:312567] 1125, 1059-s

有人知道问题是什么吗?我没有在我的代码中使用自动布局。

并且调试中有我的图片令牌: 显然,它只添加了一个tableView,我的_titlesArr计数是3。 picture

【问题讨论】:

【参考方案1】:

tableview 应该被添加到scrollview 而不是scrollview 的superview。

【讨论】:

【参考方案2】:

确保您也开启了用户交互。

【讨论】:

视图和滚动视图的 userInteractionEnabled = YES;【参考方案3】:

您在UIScrollView 之上添加UITableView,这实际上将scrollView 放在tableView 下方。如果您希望 tableView 成为 scrollView 的一部分。尝试将tableView添加为scrollView的子视图

【讨论】:

【参考方案4】:

您的视图层次结构如下:

YourCustomView->ScrollView->TableView 

现在您正在尝试滚动滚动视图,但您可以看到 Tableview 位于层次结构的 top 上。所以它不会水平滚动。

【讨论】:

谢谢,我的 false.U 帮助了我。

以上是关于Q:当我给一个UIView添加UIScrollView,但是scrollView不能滚动的主要内容,如果未能解决你的问题,请参考以下文章

为包含 CAGradientLayer 的 UIView 设置动画

在 UIScrollView 下方绘制阴影(滚动 UIView)

IOS:UIView 永远可见

在 Swift 上将所有手势从 UIView 转换为 UIScrollView

Swift 子类 UIView

从嵌套的 UIView 获取框架