我有一个关于 FOR 循环和 subview 的问题。我想每次循环使用不同的 subview 名称运行时显示不同的 subview 。名称必须是“hoofdstukController”+ i 计数。
我该怎么做?我尝试了几种方法,但都使应用程序崩溃了。这是我的循环:
_viewControllers = [[NSMutableArray alloc] init];
for (int i = 0; i < 10; i++)
{
CGRect frame = _scrollView.frame;
frame.origin.x = frame.size.width * i;
frame.origin.y = 0;
hoofdstukController.view.frame = frame;
[_scrollView addSubview:hoofdstukController.view];
[_viewControllers addObject:hoofdstukController];
}
希望有人能把我推向正确的方向!
谢谢。
最佳答案
您应该首先将所有 View Controller 添加到数组中:
_viewControllers = [[NSMutableArray alloc] init];
[_viewControllers addObject:hoofdstukController];
[_viewControllers addObject:hoofdstukController0];
[_viewControllers addObject:hoofdstukController1];
//etc.
然后您可以循环该数组并将它们的 View 添加为 subview 。请注意,您还应该将它们添加为父 View Controller 的 subview Controller :
编辑:抱歉,“i”无法正常工作,您需要对其进行一些修改
for (UIViewController *vc in _viewControllers)
{
CGRect frame = _scrollView.frame;
frame.origin.x = frame.size.width * i;
frame.origin.y = 0;
vc.view.frame = frame;
[viewControllerHostingTheScrollView addChildViewController:vc];
[_scrollView addSubview:vc.view];
[vc didMoveToParentViewController:viewControllerHostingTheScrollView];
}
编辑:抱歉,“i”无法正常工作,您需要对其进行一些修改:
int i = 0;
for (UIViewController *vc in _viewControllers)
{
CGRect frame = _scrollView.frame;
frame.origin.x = frame.size.width * i++;
frame.origin.y = 0;
vc.view.frame = frame;
[viewControllerHostingTheScrollView addChildViewController:vc];
[_scrollView addSubview:vc.view];
[vc didMoveToParentViewController:viewControllerHostingTheScrollView];
}
关于ios - addSubview 在 "for loop"中并带有计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13086014/