将标签添加到原型单元格

时间:2018-12-06 05:13:51

标签: ios swift uitableview

我需要在原型单元格中添加标签,但出现错误“ UITableViewCell类型的值没有成员'movieTitleLabel'。

import UIKit

class FirstTableView: UITableViewController {

let model = MovieModel()

override func viewDidLoad() {
    super.viewDidLoad()
}

override func numberOfSections(in tableView: UITableView) -> Int {
    // #warning Incomplete implementation, return the number of sections
    return 1
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete implementation, return the number of rows
    return model.MovieArray.count
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "movieCells", for: indexPath) as! TableViewCell
    cell.movieTitleLabel?.text = model.movieArray[indexPath.row]

    return cell
}

在编辑器中,我将FirstTableView设置为委托和数据源。

我创建了一个名为TableViewCell的新子类,将标签链接到该类。现在我不知如何将movieArray输出到该标签。

3 个答案:

答案 0 :(得分:1)

您忘记将cell下放到UITableViewCell子类中,因此您仅引用超类UITableVoewCell,而该超类没有任何movieTitleLabel

要解决此问题,请在将as! YourTableViewCellSubclass出队的行末添加cell

let cell = tableView.dequeueReusableCell(withIdentifier: "movieCells", for: indexPath) as! YourTableViewCellSubclass

答案 1 :(得分:1)

注意以下几点:

  • 您已经在ViewController中创建了名为“ movieTitleLabel”的标签的出口,但是该标签应该在TableCell类中。正确引用此标签。
  • 在第一点之后,现在要访问此标签,请遵循以下代码:

代码:

<target name="testall">
    <mkdir dir="${junit.output.dir}" />
    <junit fork="yes" printsummary="withOutAndErr" haltonfailure="off" showoutput="yes">
        <formatter type="xml" />
        <batchtest fork="no" todir="${junit.output.dir}">
            <fileset dir="${testclass.dir}">
                <include name="**/*Test.class" />
            </fileset>
        </batchtest>
        <classpath refid="MobileHrAdapterService.classpath" />
        <jvmarg line="-ea" value="-Dfile.encoding=UTF-8" />
    </junit>
</target>

答案 2 :(得分:0)

您的原型单元应该已经指定了一个实现类-它必须是UITableViewCell的子类。如果完成了此操作,则将dequeueReusableCell的结果向下转换为此类。

您还应该已将该类中的movieTitleLabel插座连接到情节提要中的标签。从上面看,好像您已将其连接到UITableViewController(@IBOutlet弱mov movieTitleLabel:UILabel!)一样。您应该将其从VC中删除,仅将其放在UITableViewCell类中。