我正在向UIView
添加UIScrollView
。它将是一个水平滚动视图,我想添加多个视图。显示的代码用于一个scrollview只是为了简化它。滚动视图在我的故事板中,我添加的视图是.xib文件。视图会被添加,但它的大小是我设置的两倍。所以它是640到244. scrollview占据了我视图的底部122像素。并且.xib是320 x 122.我只是在我的.xib顶部有一个大按钮,所以我可以告诉我添加它时发生了什么。唯一的问题是,我添加到scrollview的.xib是我希望它的两倍大。我做错了什么?
如果需要更多信息,请与我们联系。谢谢!
BADAchievements *temporaryView = (BADAchievements *)[[[NSBundle mainBundle] loadNibNamed:@"BADAchievements" owner:self options:nil] objectAtIndex:0];
CGRect f = temporaryView.frame;
f.size.width = 320;
temporaryView.frame = f;
CGSize s = self.achievementScrollView.contentSize;
s.width = f.origin.x + f.size.width;
[self.achievementScrollView setContentSize:s];
[self.achievementScrollView addSubview:temporaryView];
答案 0 :(得分:1)
您将代码放在上面的位置,即视图控制器的哪种方法?
=>您temporaryView
和/或achievementScrollView
的最后一帧不一定由您在NIB中指定的尺寸定义!可以稍后重新调整帧/边界(即,当完成视图加载过程并且布置所有子视图时)。
因此,您应该检查您的子视图的autoresizingMask
和autoresizesSubviews
属性是否设置正确。 (即自动调整大小)
查看有关自动调整大小等的View Programming Guide for iOS
答案 1 :(得分:0)
尝试做一些像这样的改动:
BADAchievements *temporaryView = (BADAchievements *)[[[NSBundle mainBundle] loadNibNamed:@"BADAchievements" owner:self options:nil] objectAtIndex:0];
CGRect f = temporaryView.frame;
CGRect f = CGRectMake(f.origin.x, f.origin.y, 320, f.size.height);
temporaryView.frame = f;
答案 2 :(得分:0)
我只是搞砸了一下。所以显然代码是可以的,我只需要采用自动布局,我改变了UIView的自动调整功能,因此它不会水平或垂直拉伸。感谢您的回复。