【发布时间】:2015-08-24 01:33:44
【问题描述】:
将UITableView 放入以模态(表单)形式呈现的UIViewController 时,我发现了一个奇怪的行为
由于编码错误而修复:由于某些原因,表格视图在每组中显示 2 组标签 仅设置 1 时的单元格。第一组显示原始标签 名称然后直接在顶部是编码文本。看 iPhone4s 屏幕 射击。
在 iPad 上,即使表格、单元格和 contentView 已设置为 clearColor,表格视图也是白色的。请参阅 iPad 屏幕截图。
iPad 屏幕截图:
iPhone 屏幕截图:
这是一个测试代码,用于查看我在主应用程序中的编码是否有错误。
class TestTableView:UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var testTable: UITableView!
var data = ["One", "Two", "Three"]
override func viewDidLoad() {
super.viewDidLoad()
self.testTable.delegate = self
self.testTable.dataSource = self
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
println(self.data.count)
return self.data.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("testCell", forIndexPath: indexPath) as! testTableCell
cell.testTableCell!.text = self.data[indexPath.row]
return cell
}
}
class testTableCell:UITableViewCell{
@IBOutlet weak var testTableCell: UILabel!
override func layoutSubviews() {
super.layoutSubviews()
}
}
有趣的是 println(self.data.count) 打印了 4 次。
任何人都可以在我的代码中看到问题吗?或者这是一个错误?
任何反馈都会有所帮助..
【问题讨论】:
-
你应该使用
cell.testTableCell.text = xxx而不是cell.textLabel!.text = xxx。 -
在模拟器中运行应用程序时,点击代码编辑器下 Xcode 中的 Debug View Hierarchy 按钮。这将允许您分层查看界面。也许您有一个或多个重复的控件或其他东西......
-
@Bannings。错过这一点感到有点愚蠢。该死的自动完成功能挫败了我。哈哈。然而问题仍然存在,在 ipad 上,桌子的背景仍然是白色的。有什么想法吗?
-
两个屏幕截图中的表格都比显示的视图窄得多。为什么?呈现的视图是什么? (紫色的东西……)显然不是桌子,那么实际呈现的是什么?您需要更多地解释这里的架构。您的信息太少,无法复制。
-
正如我在描述中所说,视图以模态方式呈现(表单)。视图具有紫色背景,并且表格周围有很大的空白。测试在 iPad Air 上进行。然而,不透明的单元格似乎与它的模态无关。我在使用“show”时遇到了同样的问题。
标签: ios swift uitableview