0

UIViewController にテーブル ビューを追加しました。次に、テーブル ビュー内のカスタム セルにラベルを追加しました。タグを使用して、テーブルビュー内のラベルを更新しようとしました。動作しないようです。

これは私のコードです。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell: UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("LineItemCell", forIndexPath: indexPath)
    let object = lineItemsObject[indexPath.row]
    //cell.textLabel?.text = object["quantity"]

    print(object["description"]!)

    if let descriptionLabel = cell.viewWithTag(500) as? UILabel {
        descriptionLabel.text = object["description"]
    }
    else
    {
        print("fail")
    }

    return cell
}

関数を呼び出すと、常にタグが読み取られず、「失敗」が出力されます。ラベルにも正しいタグ値を割り当てました。

ここで、属性インスペクターにラベルの詳細の画像を添付しました ここに画像の説明を入力

問題を解決するのを手伝ってください。

4

2 に答える 2

1

あなたのセルは、内部のラベル (500 タグの付いたもの) を認識していません。次の行があるため、カスタム セルを提供していません。

let cell: UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("LineItemCell", forIndexPath: indexPath)

これは定義済みのセルです。ドキュメントの時点で、定義済みのセルまたはカスタムのセル (UITableViewCell をサブクラス化することで取得) を持つことができます。

「セルを作成するときは、自分でカスタマイズするか、いくつかの事前定義されたスタイルのいずれかを使用できます。事前定義されたセル スタイルは最も簡単なオプションです。事前定義されたスタイルを使用すると、セルは位置とスタイルが固定されたラベルと画像のサブビューを提供します。...セルのテキストと画像を設定し、textLabel、detailTextLabel、および imageView プロパティを使用します。」

  1. 定義済みにしたい 場合:テキストをセルに入れたいだけの場合(これは最初にコメントされていることがわかります)。

    cell.textLabel?.text = オブジェクト["数量"]

  2. カスタムする

別の迅速なファイルで UITableViewCell を拡張します。ここでバインディングを行い、ストーリーボードを並行して操作します。カスタム クラスをセルに割り当てます。また、デキューを変更します。

let cell: MyCustomTableViewCell = self.tableView.dequeueReusableCellWithIdentifier("LineItemCell", forIndexPath: indexPath) as! MyCustomTableViewCell
于 2015-11-19T08:29:59.573 に答える