Ios 来自xib的自定义UIView未出现在UIScrollView中

Ios 来自xib的自定义UIView未出现在UIScrollView中,ios,objective-c,uiview,uiscrollview,xib,Ios,Objective C,Uiview,Uiscrollview,Xib,我在xib文件中创建了一个自定义UIView。现在在另一个视图控制器中,我在故事板中添加了一个滚动视图。在这个视图控制器的实现文件中,我试图添加这个自定义UIView,但它没有显示出来。我确信我遗漏了一些东西,因为我仍然习惯于使用xib文件。我已经尝试添加普通UIView,这些视图会正确显示在滚动视图中。代码如下: [[NSBundle mainBundle] loadNibNamed:@"CustomUIView" owner:nil options:nil]; for (int i = 0;

我在xib文件中创建了一个自定义UIView。现在在另一个视图控制器中,我在故事板中添加了一个滚动视图。在这个视图控制器的实现文件中,我试图添加这个自定义UIView,但它没有显示出来。我确信我遗漏了一些东西,因为我仍然习惯于使用xib文件。我已经尝试添加普通UIView,这些视图会正确显示在滚动视图中。代码如下:

[[NSBundle mainBundle] loadNibNamed:@"CustomUIView" owner:nil options:nil];
for (int i = 0; i < 10; i++) {
    CustomUIView *setView = [[CustomUIView alloc] initWithFrame:CGRectMake(10, 10 + (10*i) + (i*100), self.view.frame.size.width - 20, 100)];

    [self.scrollView addSubview:setView];
}
self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, 10 + (10*10) + (10*100));
框架的定位在这个循环中为编程创建的UIView工作,所以我认为这不是问题所在。有什么想法吗?谢谢。

使用此代码

for (int i = 0; i < 10; i++) {
    CustomUIView *setView = [[[NSBundle mainBundle] loadNibNamed:@"CustomUIView" owner:nil options:nil] objectAtIndex:0];
    setView.frame = CGRectMake(10, 10 + (10*i) + (i*100), self.view.frame.size.width - 20, 100);

    [self.scrollView addSubview:setView];
}
self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, 10 + (10*10) + (10*100));

在您的特定情况下,更好的方法是将UIView设置为UITableViewCell,并使用它填充UITableView,而不是运行循环并在UIScrollView中添加子视图。我很高兴它解决了您的问题,同时使您的应用程序变得更好


但除此之外,如果您想知道代码为什么不工作,问题是如何加载Nib文件。已经回答的问题将澄清关于加载NIB的所有概念,并向您展示以最稳定的方式加载NIB的正确方法。快乐编码

为什么要通过循环在scrollview中添加该子视图的多个实例?为什么不将其设置为UITableViewCell并改用UITableView呢?我可以尝试一下,但我正在进行一种更为不同的设置,不想受到使用表视图的限制。我使用的代码看起来还好吗?我不这么认为,不。在当前状态下,有很大的出错空间。但特别是关于如何加载nib的部分似乎是错误的。好吧,我最终切换到了表视图,这很有效。谢谢你的帮助。很有趣。我想我也找到了你真正问题的答案。如果你愿意,你可以试试。看这里,