尝试使用 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