【问题标题】:one view controller with multiple views一个具有多个视图的视图控制器
【发布时间】:2014-12-06 09:46:13
【问题描述】:

我困惑了很久。假设我有一个视图控制器,当我点击某个按钮时,当前视图切换到另一个视图,我可以在情节提要的一个视图控制器中配置不同视图的布局吗?或者是否有一种标准方法可以在一个视图控制器中处理多个视图?非常感谢您的回复!

【问题讨论】:

    标签: ios views viewcontroller


    【解决方案1】:

    假设您的意思是 UIView 而不是 UIViewController(这需要使用 ContainerView),那么您可以像这样使用视图 .hidden 属性:

        func switchViews ()
    {
          if view1.hidden == true  && view2.hidden == false 
          {
            view1.hidden = false
            view2.hidden = true
          } 
          else 
          {
            view1.hidden = true
            view2.hidden = false
          }
    }
    

    您只需像往常一样配置视图

    【讨论】:

    • 这是一种方式,感谢您的回复
    【解决方案2】:

    这是一段代码:-

    //You need to create a array of view's which you want to show along with a unique tag value:-
    
    UIView *view1 = [[UIView alloc] init];
    view1.tag = 1;
    UIView *view2 = [[UIView alloc] init];
    view2.tag = 2;
    UIView *view3 = [[UIView alloc] init];
    view3.tag = 3;
    
    NSArray *viewArray = [[NSArray alloc] initWithObjects:view1,view2,view3, nil];
    
    //In below method, you could pass the tag value of view which you want to show as argument.
    - (void)addSubviewWithTag:(NSInteger)tag {
    
      for (int i=0;i <viewArray.count;i++){    //This loop will check and remove all view from self(parent view) which are not be to present or added.
        if([viewArray objectAtIndex:i].tag != tag){
            [[viewArray objectAtIndex:i] removeFromSuperview];
        }
        else{
            [self.view addSubview:[viewArray objectAtIndex:i]];  //The one which match's will be added as subview to self(parent view)
        }
      }
    }  
    

    【讨论】:

      【解决方案3】:

      我建议您阅读 Apple 标准布局指南。

      1) 您可以使用UIScrollView 来管理其中的子视图。并将滚动视图添加到您的视图控制器

      2) UITableViewUICollectionView 在您想要管理复杂视图时都比其他人更好。像删除、重新排序和处理子视图事件。在这里您可以获取单元格的索引和后续子视图的详细信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-02
        • 2014-07-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多