Swift - 表格视图中的第二部分不可见

Posted

技术标签:

【中文标题】Swift - 表格视图中的第二部分不可见【英文标题】:Swift - Second section in tableview not visible 【发布时间】:2017-03-08 06:24:46 【问题描述】:

我试图给我的控制器两个分组的 tableview 部分。截至目前,第一部分及其标题正确显示,但第二部分无处可寻。这两个部分都非常简单和简短,因此它们应该完全适合我的框架。

第二组去哪里了,我怎样才能让它出现在第一组下面?

import UIKit

struct SectionData 
   let title: String
   let data: [String]

var numberOfItems: Int 
    return data.count


subscript(index: Int) -> String 
    return data[index]
   


extension SectionData 
  init(title: String, data: String...) 
    self.title = title
    self.data = data
   
 

class SettingsController: UITableViewController 

let cellId = "cellId"

override func viewDidLoad() 
    super.viewDidLoad()

    self.tableView.dataSource = self
    self.tableView.delegate = self
    self.tableView.isScrollEnabled = false
    self.tableView.tableFooterView = UIView(frame: CGRect.zero)
    self.tableView.backgroundColor = UIColor(white: 0.95, alpha: 1)
    self.tableView.rowHeight = 60


lazy var mySections: [SectionData] = 
    let section1 = SectionData(title: "INFORMATION", data: "About the app", "Our website", "Twitter", "Call us")
    let section2 = SectionData(title: "SUPPORT", data: "Report a problem", "Privacy Policy")

    return [section1, section2]
()

func numberOfSectionsInTableView(tableView: UITableView) -> Int 
    return mySections.count


override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    return mySections[section].numberOfItems


override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? 
   return mySections[section].title


override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) 
    let header = view as! UITableViewHeaderFooterView
    header.textLabel?.font = UIFont(name: "Futura", size: 16)!
    header.textLabel?.textColor = UIColor.darkGray


override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat 
    return 40


override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 

    let cellTitle = mySections[indexPath.section][indexPath.row]

    let cell = tableView.dequeueReusableCell(withIdentifier: "cellId", for: indexPath) as UITableViewCell
    cell.selectionStyle = UITableViewCellSelectionStyle.default
    cell.accessoryType = UITableViewCellAccessoryType.disclosureIndicator
    cell.textLabel?.text = cellTitle

    return cell
   

【问题讨论】:

【参考方案1】:

numberOfSections(in:) 的签名在 Swift 3 中已更改,因此请更改您的方法。

override func numberOfSections(in tableView: UITableView) -> Int 
    return mySections.count

【讨论】:

非常感谢!它现在正在工作。 Xcode 没有通知我这件事有点奇怪。它通常会告诉我由于 Swift 3 中的设置更改而更改某些内容。将其标记为答案。 @DennisvanMazijk 欢迎朋友 :)

以上是关于Swift - 表格视图中的第二部分不可见的主要内容,如果未能解决你的问题,请参考以下文章

MFC体系结构

SKScene 中的子视图 - Swift

如何在 Amazon Redshift 中获取电子邮件地址的第二部分或第一部分?

动态更改静态单元格上的节标题文本

SpringBoot----Web开发第二部分---CRUD案例实现

awk 在 gnuplot 命令的第二部分或子图中不起作用