swift 3.0 转换添加到视图字典时不明确使用 tableView

Posted

技术标签:

【中文标题】swift 3.0 转换添加到视图字典时不明确使用 tableView【英文标题】:swift 3.0 converting Ambiguous use of tableView when adding to views dictionary 【发布时间】:2016-09-22 04:47:23 【问题描述】:

您好,我在尝试将我的 tableView 添加到视图字典以进行约束时遇到以下错误,

'tableView(_:numberOfRowsInSection:)' 的模糊使用

造成这种情况的代码是

let viewsDict = ["panelView": panelView, "tableView": tableView]

然后我用它来创建自动布局约束

scrollView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:[tableView]-20-[panelView]", options: [], metrics: nil, views: viewsDict))

scrollView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-0-[panelView]-0-|", options: [], metrics: nil, views: viewsDict))

代码是从

调用的
override func viewDidLayoutSubviews()

我目前正在将用 swift 2.2 编写的代码库转换为 swift 3.0

如果您需要更多信息,请告诉我,并提前感谢您的帮助。

更多信息

我正在初始化我的表格视图

  let tableView:UITableView = UITableView()

并注册委托,数据源和单元格如下

tableView.register(TPLShelfLocationTableViewCell.self, forCellReuseIdentifier: cellIdentifier)
        refreshData()

tableView.delegate = self

tableView.dataSource = self

tableView.separatorStyle = UITableViewCellSeparatorStyle.none

【问题讨论】:

tableview完全在代码中没有出路。 如果您将字典明确键入为[String: UITableView],会发生什么情况? @James 非常感谢,这让我发疯了,我将其键入为 [String:UIView] 因为它需要其他视图。如果您将此作为答案发布,我将投票并标记为已接受。再次感谢。 【参考方案1】:

尝试将viewsDict 的类型显式设置为[String: UIView]

let viewsDict: [String: UIView] = ["panelView": panelView, "tableView": tableView]

【讨论】:

以上是关于swift 3.0 转换添加到视图字典时不明确使用 tableView的主要内容,如果未能解决你的问题,请参考以下文章

Swift 3.0:数据到JSON [String:Any]

Swift:以编程方式添加视图时,UIScrollView 的可滚动内容大小不明确,而不使用 IB

如何在 Swift 3.0 中使用 keysSortedByValue?

从按钮将值传递给视图控制器字典

Swift 3.0 中的 UIAlertAction 内的 UIAlertView ?

如何在 swift 3.0 中制作 5*8 集合视图 [关闭]