更改静态表视图单元格高度

时间:2017-05-14 22:39:48

标签: ios swift uitableview

我的应用程序中有一个if语句,我希望它能够更改静态tableview单元格的高度。这是我希望的

import UIKit

class DashboardViewController: UITableViewController {

    @IBOutlet weak var cell: UITableViewCell!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.


        // Set cell to "show" on date
        let date = Date()
        let calendar = Calendar.current
        let components = calendar.dateComponents([.year, .month, .day], from: date)

        let year =  components.year
        let month = components.month
        let day = components.day

        if(month == 6 && day == 5 && year == 2017) {

          // Here I want the height to be set to 313
        } else {

         // Here I want the height to be set to 0
        }




    }


    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }



}

标有我需要帮助的行。谢谢!

3 个答案:

答案 0 :(得分:0)

您可以更改tableview的tableview call spResetPassword('existingemail@gmail.com')属性。使用您的示例:

rowHeight

此外,要有效地更改单元格的高度,您需要使用if cell is MyCustomTableViewCell { tableView.rowHeight = 313 } else { tableView.rowHeight = 0 } 重新加载tableview,或者按索引路径刷新行:

tableview.reload()

希望这会带你走向你想要的解决方案。

答案 1 :(得分:0)

Alrighty这是根据您在聊天中提供的详细信息进行的编辑。

首先,您需要正确设置TableViewController。 Here在我发现的文章中涵盖了很多表视图基础知识。

设置表格视图后

您的模型需要具有某种日期属性才能匹配日期条件。让我们说例如你的模型看起来像这样:

var model = [(text: "here is some text", date: Date())] 

您需要在tableViewController / delegate中覆盖/实现函数选项卡tableView(:_ heightForRowAt indexPath:_)。在此功能中,您将检查模型的日期并将其应用于单元格的高度。

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

   let date = model[indexPath.row].date

   if yourCondition {
      return 313
   } else {
      return = 0
   }
}

答案 2 :(得分:0)

据我了解您的问题,如果发生特定情况,您希望更改UITableViewCell的高度。对于这种情况,我建议您使用UITableView委托功能,即heightForRowAt indexPath

以下是代码段:

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
{
if(month == 6 && day == 5 && year == 2017) {
 // Here I want the height to be set to 313
} else {
// Here I want the height to be set to 0
 }
}