0

我正在将 a 添加UIViewUIScrollView. 这将是一个水平滚动视图,我想向它添加多个视图。显示的代码仅用于一个滚动视图,以使其简单。滚动视图在我的故事板中,我添加的视图是一个 .xib 文件。视图被添加,但它是我设置它的两倍大小。所以它是 640 x 244。滚动视图占据了我视图底部的 122 像素。.xib 是 320 x 122。我的 .xib 顶部只有一个大按钮,所以当我添加它时,我可以知道发生了什么。唯一的问题是,我添加到滚动视图的 .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];
4

3 回答 3

1

你把你的代码放在哪里,即你的视图控制器的哪个方法?

=> 您temporaryView和/或的最终帧achievementScrollView不一定由您在 NIB 中指定的尺寸定义!框架/边界可能会在以后重新调整大小(即当视图加载过程完成并且所有子视图都已布局时)。

因此,您应该检查您的子视图的autoresizingMaskautoresizesSubviews属性是否设置正确。(即自动调整大小)

查看关于自动调整大小等的 iOS 视图编程指南。

于 2013-02-06T08:28:29.413 回答
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;
于 2013-02-06T06:51:05.290 回答
0

我只是把它弄乱了一点。所以显然代码没问题,我只需要采用自动布局,然后我更改了 UIView 上的自动调整大小,因此它不会水平或垂直拉伸。感谢您的回复。

于 2013-02-06T07:03:21.613 回答