1

UITableViewCell 内に配置されたKDCircularProgress内に画像を設定しようとして います。

ここに画像の説明を入力

StoryBoard から画像を追加すると正常に表示されますが、プログラムで追加しようとすると画像が表示されません。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cellToReturn: DashBoardCell! = tableView .dequeueReusableCellWithIdentifier("DashBoardCell") as? DashBoardCell
    if (cellToReturn == nil) {
        cellToReturn = DashBoardCell(style: UITableViewCellStyle.Default, reuseIdentifier:"DashBoardCell")
    }
    let image: UIImage = UIImage(named: "ImageName")!
    dImage = UIImageView(image: image)
    dImage!.frame = CGRectMake(0,0,30,25)
    dImage?.contentMode = UIViewContentMode.ScaleToFill
    cellToReturn.dynamicImageView = dImage

dynamicImageView は UITableViewCell クラスの UIImageView アウトレットであり、TableView デリゲート メソッドが実装されている View Controller クラスのテーブル ビュー セルに動的画像を設定しようとしています。

私は何を間違っていますか?

4

1 に答える 1

1

DashBoardCell見た目がよくわからないので間違っているかもしれませんdImageが、ビュー階層に追加されていないようです。がストーリーボードにDashBoardCell既に作成されていて、作成さdynamicImageViewれない理由がわからない場合は、 の作成について心配する必要はありません。UIImageView単純に次のように画像を設定できます。

cellToReturn.dynamicImageView.image = UIImage(named: "ImageName")

そうでない場合は、次のようなもので追加する必要があります

cellToReturn.contentView.addSubview(dImage)

または、 にオブザーバーDashBoardCellがある場合dynamicImageViewは、didSetそこに新しいビューを挿入できます。また、 で新しいものを作成するので、必ず でオーバーライドprepareForReuseDashBoardCellて削除する必要があります。dynamicImageViewcellForRowAtIndexPath

于 2016-04-25T16:54:52.800 に答える