UITableViewCell 中的 UITextField 在运行时未出现

Posted

技术标签:

【中文标题】UITableViewCell 中的 UITextField 在运行时未出现【英文标题】:UITextField in UITableViewCell not appearing at runtime 【发布时间】:2013-09-29 06:52:22 【问题描述】:

所以我正在使用 XCode 5 和 ios 7 并尝试将可编辑的 UITextFields 添加到一系列 UITableViewCells。在情节提要上看起来一切都很好,但是当我运行应用程序时,单元格中没有可见的文本,并且单元格不允许编辑。

它在情节提要中的外观截图:

在应用程序中,它只是几个空白单元格。有什么想法吗?

【问题讨论】:

您使用哪种类型的表格视图?静态单元格或动态原型表格?您是否将数据源设置为表格视图? 尝试使用 nsconstraint 固定单元格的宽度 【参考方案1】:

请参考UITableView with static cells does not appear

关于静态单元格的另一件事,它们只适用于 UITableViewController。故事板编辑器将允许您将它们添加到 常规 UIViewController 中的 Table View 对象,但这不会 在运行时工作。原因是 UITableViewController 提供了一些额外的魔法来处理数据源 静态细胞。 Xcode 甚至阻止你编译这样的项目 错误消息:“非法配置:静态表视图是 仅在嵌入 UITableViewController 实例时有效”。

【讨论】:

静态单元格。看起来我可以通过设置数据源在代码中做到这一点,但是有没有办法在情节提要中添加文本字段以避免一系列不同的输入类型的 if/elseif/elseif...?跨度> 此外,无论是静态单元格还是动态原型,似乎都类似地工作。功能上有什么区别? 我对静态单元格进行了快速测试,无需实现 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 并且单元格将自动显示在 tableview .动态表格:单元格的数据需要在运行时更新, 文本字段显示出来并且可以使用静态单元格进行编辑,并且没有覆盖 cellForRowAtIndexPath?您对我缺少什么有任何见解吗? 对不起,我检查了它不起作用,通用视图控制器不支持静态单元格,它只能与 UITableViewController 一起使用【参考方案2】:

尽管我最近发现如果您的静态 tableViewCell 显示在情节提要中但仅因为您的 UITableViewController 类具有numberOfSections()tableView() 函数而没有出现在运行时中。 如果你真的想显示静态表格视图单元格,那么只需删除这些函数,它就会出现在运行时。你只需要像这样在你的班级中只有viewDidLoad() func

class MenuTableViewController: UITableViewController 

    override func viewDidLoad() 
        super.viewDidLoad()
    


【讨论】:

以上是关于UITableViewCell 中的 UITextField 在运行时未出现的主要内容,如果未能解决你的问题,请参考以下文章

根据内容大小属性设置 UIText 视图的宽度

从 UIText 字段的用户输入更改 UIView 框架的高度和宽度

无法更改 UIText 视图的字体(使用 Web 服务时)

如何从 UITextfields UIMenuController 中删除不需要的 UIMenuItems?

UITableViewCell 中的 UIDatePicker 更新 UITableViewCell 文本标签

更改 UITableViewCell 中的对象也更改了重用 UITableViewCell 的对象