我需要制作一个包含多个交互式页面的向导,这些页面从用户那里收集数据。通过制作每个窗口来制作这么多页面是一项艰巨的工作。是否有任何简单的类或命令来管理它?
问问题
232 次
2 回答
2
您可以采取几种方法来做到这一点。首先,您可以使用UINavigationController
允许您在多个视图控制器之间轻松移动的 a。如果您可以使用多个视图控制器,这可能是最好的选择。
要推送到导航堆栈中的下一个控制器,您可以使用:
UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"someID"];
[self.navigationController pushViewController:controller animated:YES];
UIScrollView
也是一种选择,但是当项目在屏幕上和屏幕外移动时需要仔细的手动内存管理,但是这可以在一个类中完成。
[arrayOfViews enumerateObjectsUsingBlock:^(id obj, NSUInteger idx,BOOL *stop) {
UIView *subView = [[UIView alloc] initWithFrame:CGRectMake(320 * idx, 0, 320, 480)];
float randNum = arc4random() % 255;
[subView setBackgroundColor:[UIColor colorWithRed:randNum/255.0 green:randNum/255.0 blue:randNum/255.0 alpha:1.0]];
[myScrollView addSubview:subView];
[myScrollView setContentSize:CGSizeMake(320 * (idx + 1), 480)];
}];
然后,您最后也是最灵活的选择是只制作主视图的子视图,您可以为每个项目在屏幕上的移动方式制作自己的自定义动画。
[UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
[someSubview setTransform:CGAffineTransformConcat(CGAffineTransformMakeScale(0.5, 0.5), CGAffineTransformMakeTranslation(-300, -300))];
}completion:^(BOOL done){
//some completion items
}];
于 2012-09-08T04:23:26.830 回答
1
扩展 H2CO3 的评论,您可能希望使用UINavigationController,假设允许用户随意倒退。然后,继续前进,您只需将一个新的 UIViewController 推入堆栈。
或者,您可以查看故事板,它可以让您连续定义整个事物,并使用 IB 进行转换。但是,无论如何,这些最终都会嵌入到 UINavigationController 中。
于 2012-09-08T04:22:34.370 回答