我已经设置了一个UIScrollView,我想要显示水平放置的12个图像(仅适用于屏幕).在以下图像中,您可以看到我遇到的问题(这使我的滚动视图不滚动),我的约束和我在故事板上添加的UIScrollView:
我已经在 – (void)viewDidLoad上调用了以下方法,其中“设置”我的scrollview(itemList是我的滚动视图属性,itemNames是一个包含images’names的数组):
- (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];因为我看到这个建议在其他职位,但它不工作有或没有它.唯一的工作方式是,如果我取消选中在故事板上使用AutoLayout,但是将UIImageViewI用作将导航栏看作屏幕底部.
我不知道该怎么办,任何帮助都是赞赏:)
解决方法
两个解决方案
>创建可以同时满足的不同约束(您将不得不编辑).我认为问题是你的底层空间和顶层空间的约束是相互排斥的.请删除一个,然后重试.如果这对你来说很困难,可以尝试添加另一个UIView来包含UIScrollView来帮助管理你的约束,但是起初可能看起来很奇怪,但是有时候添加另外一个视图来包含你的视图实际上使得它在每个级别都更简单.>关闭Autolayout,并将UIImageView的自动调整掩码更改为您想要的.