我在xib文件中创建了一个UIScrollView
,其中包含一些子视图和约束。
然后以实际方式将其添加到视图中。
NSArray *arr = [[NSBundle mainBundle] loadNibNamed:@"View" owner:self options:nil];
self.scrollView = arr[0];
[self.view addSubview:self.scrollView];
self.scrollView.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height);
scrollView会在视图中添加,但它的框架或contentSize
总是错误的,我尝试重置其contentSize
但是没有用。
它总是可以水平滚动。我希望它像UIView
一样调整大小以适应其父框架,希望有人可以帮我解决它。
答案 0 :(得分:0)
如果您不想使用故事板,可以通过编程方式为前导,尾随,顶部和底部添加约束:
[self.view addSubview:self.scrollView];
self.scrollView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[scrollview]-|" options:0 metrics:nil views:@{@"scrollview":self.scrollView}]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[scrollview]-|" options:0 metrics:nil views:@{@"scrollview":self.scrollView}]];
[self.view updateConstraints];
[self.view layoutIfNeeded];
答案 1 :(得分:0)
覆盖以下方法并在其中添加scrollview或更新框架。在视图上应用所有约束时调用此方法。
-(void)viewDidLayoutSubviews{
[super viewDidLayoutSubviews];
}
为防止滚动,请为该方向设置内容大小0。例如
[scrollview setContentSize:CGSizeMake(500,0)];
这将只允许水平滚动。