Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何隐藏不在末尾的空单元格tableview?斯威夫特3_Ios_Swift_Uitableview_Core Data_Swift3 - Fatal编程技术网

Ios 如何隐藏不在末尾的空单元格tableview?斯威夫特3

Ios 如何隐藏不在末尾的空单元格tableview?斯威夫特3,ios,swift,uitableview,core-data,swift3,Ios,Swift,Uitableview,Core Data,Swift3,我刚开始使用swift,正在制作一个日历应用程序。现在,如果你点击一个日期,我会显示一个事件列表。这里所有的问题都是关于隐藏tablieview末尾的单元格,但我的问题不是这样的eventsTableView.tableFooterView=UIView()不起作用 override func viewDidLoad() { super.viewDidLoad() eventsTableView.register(UITableViewCell.self, forCellReus

我刚开始使用swift,正在制作一个日历应用程序。现在,如果你点击一个日期,我会显示一个事件列表。这里所有的问题都是关于隐藏tablieview末尾的单元格,但我的问题不是这样的eventsTableView.tableFooterView=UIView()不起作用

override func viewDidLoad() {
    super.viewDidLoad()
    eventsTableView.register(UITableViewCell.self, forCellReuseIdentifier: "theCell")
    self.eventsTableView.rowHeight = 80
}

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


    let event = model.events[indexPath.row]

    let theItem = eventsTableView.dequeueReusableCell(
        withIdentifier: "theCell",for: indexPath)

    let what = event.value(forKeyPath:"what") as? String
    let location = event.value(forKeyPath:"location") as? String
    let when = event.value(forKeyPath:"when") as? Date

    if model.checkDay(date: when!) == model.givendate && model.checkMonth(date: when!) == model.displayedMonth {
        theItem.textLabel?.numberOfLines = 3
        let labelText = what! + "\n" + "time: " + model.getTime(date: when!) + "\n" + "location: " + location!
        theItem.textLabel?.text = labelText
    } else {
        theItem.textLabel?.numberOfLines = 0
    }
    print(theItem)
    return theItem
}
请尝试以下代码: 您可以检查模型中的空数据,并完全隐藏该单元格,如下所示:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
  //Check if model is empty
  if shouldHideCell {
            return 0
        } else {
            return UITableViewAutomaticDimension
        }
  }

请参考这个。愉快的编码。

您在这里可以做的只是自定义数据源,例如,如果对应于该行的数据为空,则最好不要将该行添加到数据源数组中

自定义数据源时的示例

if hasEvent{
dataSource.append(day)
}else{
// No need to show in UI
}

您可以使用Constraints执行此操作问题在于此函数不执行。我在函数中放了一个print语句来检查,但它就是不执行