UIScrollView 不工作(不能滚动)
Posted
技术标签:
【中文标题】UIScrollView 不工作(不能滚动)【英文标题】:UIScrollView isn't working (can't scroll) 【发布时间】:2013-11-23 17:44:40 【问题描述】:我正在将 UIScrollView 添加到我正在制作的可重用视图中,然后将该可重用视图添加到 UIViewController。
在我的可重用视图中,我将 UIViews 添加到 UIScrollView :
int yLocation = 20;
for (int i= 0 ; i < 5; i++)
UIView *tempView = [[offerCell alloc]initWithDelegate:self];
tempView.frame = CGRectMake(5, yLocation, 290.0F, 70.0F);
yLocation += 90;
[self.scrollView addSubview:tempView];
UILabel *tempLabel = [tempView viewWithTag:1000];
tempLabel.text = [NSString stringWithFormat:@"Label Number %d" , i];
[tempLabel sizeThatFits:CGSizeMake(1000, 1000)];
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width, yLocation);
然后我将 UIView 添加到我的 UIViewController
UIView *tempView = [[BuyTokensView alloc] initWithDelegate:self andViewController:self];
[self.view addSubview:tempView];
CGPoint point = CGPointMake(10, 0);
tempView.center = point;
视图显示正确,但我无法滚动 UIScrollView。我的 UIScrollView 高度小于我在 ContentSize 中分配的高度,为什么我不能滚动?
这是 UIViewController 的图片:
【问题讨论】:
记录滚动视图高度。检查是否将滚动视图添加为子视图。 我将滚动视图添加为我写的子视图,高度很好。 我认为你应该在滚动视图上添加 tempview [self.scrollView addSubView:tempView] @AravindBG 你是什么意思?我将 tempView 添加到 scrollView..[self.scrollView addSubview:tempView]
;
我说的是第二个代码 sn-p。
【参考方案1】:
您可以尝试禁用自动布局或使用本技术说明中的策略:
https://developer.apple.com/library/ios/technotes/tn2154/_index.html#//apple_ref/doc/uid/DTS40013309
【讨论】:
我尝试了混合方法,它只是设置我的scrollView.translatesAutoresizingMaskIntoConstraints = NO;
,但它没有帮助。我还尝试关闭 AutoLayout,但没有帮助,所以我认为问题与 AutoLayout 无关。【参考方案2】:
我现在使用 Xcode 6/iOS 8+ 并打开了自动布局,我首先遇到了同样的问题,删除自动布局根本不起作用,所以为了制作滚动视图可垂直滚动,我确保了以下内容:
-
滚动视图内容大小高度必须大于屏幕高度,这几乎不用说...
必须固定滚动视图的上/下/左/右约束,我使用情节提要完成此操作,因此此处没有显示代码
如果你想让滚动视图水平滚动,那么确保它的内容大小宽度大于屏幕宽度,其他规则同样适用。
这对我有用,希望它可以帮助别人。
【讨论】:
以上是关于UIScrollView 不工作(不能滚动)的主要内容,如果未能解决你的问题,请参考以下文章