实现垂直UIScrollView

时间:2016-01-20 11:13:56

标签: ios uiscrollview

在实施UIScrollView 2天后,我放弃了自己做,尽管它应该很简单,但我无法做到。

我需要一个带有Autolayout的垂直滚动视图(我有2个需要缩放的背景图像),我有Xcode 7.2,iOs部署目标9.0,我正在使用故事板

scrollview是一个包含大量内容的“新帐户”表单,因此它可以有一个固定的高度

我尝试了很多选项,但没有其中任何一个可以使用,在我看来我有一个带有所有组件的“内容视图”的滚动视图。

问题: 1.-如何在滚动视图中添加更多内容?如果我尝试添加更多组件(超过ViewControler的高度),它会自动将我的组件移动到ViewController矩形内

2.-如何使其可滚动?如果我将内容视图固定到顶部,底部,左侧,右侧并使其具有固定高度(如1000),则不会滚动

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

Scrollview将滚动到最后一个UI对象的末尾。但这不是scrollview的默认行为。您应该在滚动视图上明确设置contentSize。请查看以下示例。

-(void)addImage {
  int count = 20;
  UIScrollView * scView = [[UIScrollView alloc] init];
  scView.frame = CGRectMake(30, 60, self.view.frame.size.width, 60);
  UIButton * btn;
  UIImageView * imgV;
  float imgWidth = 44;
 for(int i=0;i<count;i++) {
   imgV = [[UIImageView alloc] init];
   imgV.frame = CGRectMake(i*imgWidth, 0, imgWidth, 44);
   imgV.image = [UIImage imageNamed:@"gitar"];
   [scView addSubview:imgV];
 }
[scView setContentSize:CGSizeMake(imgWidth*count, 50)];
[scView setBackgroundColor:[UIColor redColor]];
[self.view addSubview:scView];
}

上述方法的作用是,它会在滚动视图中添加20个图像,最后将所有图像添加到for循环中的scrollview后,我将contentSize设置为Scrollview。此步骤使我的滚动视图滚动直到内容可用。我的示例显示水平滚动,您必须将此行为更改为垂直滚动。