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?