如何在屏幕上添加多视图?

时间:2014-11-05 04:11:41

标签: ios views

我有一个模拟证明的应用,它有一些模块,其中一个是需要重新加载以显示相同数据的屏幕。示例:我有问题和答案的屏幕。如下所示

问题:bla bla bla?

项目A:X

项目B:Y

项目c:Z

...

屏幕保持不变,需要更改的是问答内容项目A,项目B等。

并且,我正在加载信息"硬编码"。我确定还有其他更好的选择来制作这个^^。我想使用相同的屏幕来加载功能。我怎么能做到这一点?我正在寻找页面控制器,但它不是我想要的,我想使用导航控制器来导航屏幕。我有一个包含所有问题列表的字典和答案:itemA,itemB等,我可以在同一个屏幕中加载这个问题"选择下一个>和<以前?

1 个答案:

答案 0 :(得分:0)

一个简单的解决方案是创建一个UIView添加所有问题并回答其中的相关视图。

  1. 创建一个UIView在其中添加所有问答相关视图
  2. 创建下一个/上一个UIButtons
  3. 在下一个/上一个事件中添加和删除此视图,然后重新加载内部视图内容。
  4. 使用以下方法查看下一个/上一个导航
  5. 的动画

    在下面的方法中self.questionPaperView是一个动画,它包含所有与问题和答案相关的视图。

    注意:questionPaperView和内部视图创建全局变量。因此,每次添加/删除questionPaperView时,您都不需要添加问题/答案子视图。

    - (void) removeQuestionPaper {
        [UIView animateWithDuration:0.35f animations:^{
            [self.questionPaperView removeFromSuperview];                       
            [self.view layoutIfNeeded];
    
        } completion:^(BOOL finished) {
            // Call data reload method here.
        }];
    }
    
    
    
    - (void) addQuestionPaper  {
    
        [self.view addSubview:self.questionPaperView]
    
        CATransition *animation = [CATransition animation];
        [animation setDuration:0.5];
        [animation setType:kCATransitionFade];
        [animation setSubtype:kCATransitionFromRight]; // For previous use kCATransitionFromLeft
        [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
        [[theWindow layer] addAnimation:animation forKey:@"NextView"];
    }