尝试使用 Swift 在 UITableView 中的部分标题的 UIView 中设置 UILabel 的文本

Posted

技术标签:

【中文标题】尝试使用 Swift 在 UITableView 中的部分标题的 UIView 中设置 UILabel 的文本【英文标题】:Trying to set text of UILabel inside UIView of section header in UITableView using Swift 【发布时间】:2016-06-14 19:47:48 【问题描述】:

我有一个 UITableView,我正在向其中添加部分。我创建了一个单独的类,它是 UITableHeaderFooterView 的子类。这是它的代码:

import UIKit

class SectionHeader: UITableViewHeaderFooterView 


    @IBOutlet weak var sectionHeaderLabel: UILabel!
    @IBOutlet weak var sectionHeaderButton: UIButton!




    @IBAction func showHideViewAction(sender: UIButton) 


    


我要做的是在包含我的 UITableView 的 ViewController 中设置此类中包含的 UILabel 属性。在该类的 viewDidLoad 方法中,我按如下方式注册了 nib:

let nib = UINib(nibName: "SectionHeaderView", bundle: nil)
self.addTravellerTableView.registerNib(nib, forHeaderFooterViewReuseIdentifier: "SectionHeaderView")

我现在尝试在以下方法中设置 UILabel 属性的文本:

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? 

        if section == 1 
            let headerView = self.addTravellerTableView.dequeueReusableHeaderFooterViewWithIdentifier("SectionHeaderView")
            //headerView.sectionHeaderLabel doesn't work.
            return headerView
         else if section == 2
            return nil
         else 
            return nil
        
    

我无法调用 UILabel 属性 sectionHeaderLabel。单步执行代码时,“headerView”至少会作为 UIView 类型的对象出现。

谁能看出我做错了什么?

【问题讨论】:

let headerView = self.addTravellerTableView.dequeueReusableHeaderFooterViewWithIdentifier("SectionHeaderView") as! SectionHeader 【参考方案1】:

您需要告诉编译器函数调用将返回的特定类的类型,因此您需要将as! SectionHeader 添加到使视图出队的行的末尾。

【讨论】:

以上是关于尝试使用 Swift 在 UITableView 中的部分标题的 UIView 中设置 UILabel 的文本的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UITableView swift 3 中使用动画在底部滚动

(Swift) UITableView - 尝试将索引路径移动到不存在的索引路径

更新 UITableView 内的 UIView 帧大小 - swift

如何在 Swift 3 中以编程方式在 UIImageview 中添加 UITableview

使用 swift 以编程方式 UITableView

如何在swift 3中的UITableView中进行变量和使用