iOS:Autolayout导致UIScrollView不滚动

我已经build立了一个UIScrollView ,我想要显示12个图像(只适合在屏幕上8)水平布局。 在下面的图片中,你可以看到我遇到的问题(这使我的滚动视图不滚动),我的约束和我添加了故事板上的UIScrollView

故事板显示约束的屏幕截图

我已经调用了以下方法-(void)viewDidLoad ,其中我“设置”我的scrollview(itemList是我的滚动视图属性和itemNames一个数组与图像的名称):

 - (void)setupHorizontalScrollView { self.itemList.delegate = self; [self.itemList setTranslatesAutoresizingMaskIntoConstraints:NO]; [self.itemList setBackgroundColor:[UIColor blackColor]]; [self.itemList setCanCancelContentTouches:NO]; self.itemList.indicatorStyle = UIScrollViewIndicatorStyleWhite; self.itemList.clipsToBounds = NO; self.itemList.scrollEnabled = YES; self.itemList.pagingEnabled = NO; NSInteger tot=0; CGFloat cx = 0; for (; ; tot++) { if (tot==12) { break; } UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[self.itemNames objectAtIndex:tot]]]; CGRect rect = imageView.frame; rect.size.height = 40; rect.size.width = 40; rect.origin.x = cx; rect.origin.y = 0; imageView.frame = rect; [self.itemList addSubview:imageView]; cx += imageView.frame.size.width; } [self.itemList setContentSize:CGSizeMake(cx, [self.itemList bounds].size.height)]; } 

我添加了[self.itemList setTranslatesAutoresizingMaskIntoConstraints:NO]; 因为我在其他post上看到了这个build议,但是这个build议不pipe用。 唯一的办法是,如果我取消select在故事板上使用AutoLayout,但是将UIImageView移动到屏幕底部的导航栏。 我不知道该怎么做了,任何帮助,赞赏:)

两种解决scheme

  1. 创build可同时满足的不同约束条件(您将不得不编辑)。 我认为问题是你的底部空间和顶部空间约束是相互排斥的。 请删除一个,然后再试一次。 如果这对你来说很困难,那么尝试添加另一个包含UIScrollView UIView来帮助pipe理你的约束,起初可能看起来很奇怪,但是有时候增加另一个视图来包含你的视图实际上使得它在每个级别都变得更简单。

  2. closuresAutolayout,并将UIImageView的自动resize掩码更改为你所希望的。

尝试设置您的scrollView的内容大小诠释“viewDidLayoutSubviews”方法与保持自动布局设置。

 -(void)viewDidLayoutSubviews { [self.itemList setContentSize:CGSizeMake(required_width, required_height)]; } 

插入: [scrollView setContentSize:CGSizeMake(x,y)]; 在以下方法中:

 -(void)viewWillAppear:(BOOL)animated