【问题标题】:How to add UITableviewController inside UIView如何在 UIView 中添加 UITableviewController
【发布时间】:2020-03-18 04:43:09
【问题描述】:

我有一个视图控制器,它是UITableViewcontroller 中的subclass,我需要在UITableViewcontroller 下显示一个UIView,我需要分配Corner Radius,以便它与我的设计相匹配。

UITableViewcontroller 是我在整个项目中使用的通用tableview 类,因此我无法更改结构。

我所有的 ViewController 都是以编程方式创建的,我没有在任何地方使用 Storyboard。

这是我正在实施的 Viewconroller 代码

  1. headerViewController 是我标记为白色的部分
  2. 交易和团队控制器是我在 SJSegment 中添加的 UITableviewController
     private func setupSegmentController() {
        segmentViewController.headerViewHeight = 350
        segmentViewController.headerViewController = headerViewController

        segmentViewController.segmentControllers = [
            dealViewController,
            teamViewController]
        segmentViewController.delegate = self
        
        addChild(segmentViewController)
        segmentViewController.view.frame = view.bounds
        view.addSubview(segmentViewController.view)
        segmentViewController.didMove(toParent: self)
        
      }

下面红色突出显示的是我需要设计的区域

【问题讨论】:

  • 1.要么在视图中添加 UItableview 并使用它的委托和数据源,要么 2. 使用容器视图并将 UITableviewController 像子视图一样嵌入其中。
  • stackoverflow.com/a/37370856/4549304这可能对你有帮助
  • 我的交易和团队控制器已经添加为 SJSegmentedScrollView 中的子视图
  • 向视图添加圆角半径就足够了,否则我可能无法理解您的视图层次结构,您能否详细说明其他缺失的项目。
  • 你不能在 UIVIew 中添加视图控制器。您可以在视图中添加 tableview,也可以通过将视图控制器添加为子视图来将视图控制器的视图添加到另一个视图中。

标签: ios swift uitableview tableview


【解决方案1】:

据我所知,您想在其他视图控制器中添加一个视图控制器作为子视图。您必须在要显示该表 Table View Controller 的 View Controller 中使用 ContainerView。创建该容器视图的出口,然后将表视图添加为子视图。

let yourTableViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "yourTableViewController") as! UITableViewcontroller
yourTableViewController.view.autoresizingMask = [.flexibleHeight, .flexibleWidth]
yourTableViewController.view.frame = self.containerView.bounds
self.addChild(yourTableViewController)
containerView.addSubview(yourTableViewController.view)
yourTableViewController.didMove(toParent: self)

【讨论】:

  • 或者他可以只继承 UITableView。不需要创建 ViewController
【解决方案2】:

您需要继承 UITableViewview.addSubview(yourCustomClass) 。无需在 UIView 中添加UITableViewController

【讨论】:

    【解决方案3】:

    Controllers 它也是一个可以控制视图的基本类。您可以将您的通用视图添加为子视图 tableView,并将它们的委托和数据源设置为主视图控制器。您不需要为此创建 tablewviewcontroller。

    您所需要的只是 - (在主视图控制器内)

    tableView.delegate = self
    tableView.dataSource = self.
    

    然后你必须实现协议一致性

    MainViewController: UITableViewCOntrollerDelegate {
    
    // implementation here
    }
    
    MainViewController: UITableViewControllerDataSource {
    // implementation here
    }
    

    在此之后,您可以自定义您的表格视图,如视图并做您想做的事情

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      • 2016-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多