【iOS(swift)笔记-3】swift使用SnapKit创建高度自适应的cell方法

本文档展示了如何在Swift中利用SnapKit为UITableView创建自适应高度的cell。通过为contentView添加子视图并设置约束,实现了在不同内容下cell能自动调整高度的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//

//  BlogTableViewCell.swift

//  App

//

//  Created by kila on 16/02/2018.

//  Copyright © 2018 kila. All rights reserved.

//


import UIKit

// 自定义cell类

class MyTableViewCell: UITableViewCell {

    

    var uImgAvatar: UIImageView!

    var uTxtContent: UILabel!


    override func awakeFromNib() {

        super.awakeFromNib()

    }


    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {

        super.init(style: style, reuseIdentifier: reuseIdentifier)

        if !self.isEqual(nil) {

            let uItemBox = UIView() // 第1步:为“CellcontentView”创建一个子视图,用来容纳所有自定义的视图(这是关键中的关键)

            uImgAvatar = UIImageView()

            uTxtContent = UILabel()

            

            self.contentView.addSubview(uItemBox)

            uItemBox.addSubview(uImgAvatar)

            uItemBox.addSubview(uTxtContent)

            

            uItemBox.snp.makeConstraints { (make) -> Void in

                make.edges.equalTo(self.contentView).inset(UIEdgeInsetsMake(0, 0, 0, 0))  // 第2步:设置uItemBox与CellcontentView”边缘对齐,可以有空隙,没必要一定是(0000)

            }

            // 第3步:uItemBox内部的子控件合理排版即可(由topbottom与uItemBox的对齐基准决定了cell最终的高度

            uImgAvatar.snp.makeConstraints { (make) -> Void in

                make.size.equalTo(CGSize(width:45, height:45))

                make.top.equalTo(uItemBox).offset(25)

                make.left.equalTo(uItemBox).offset(25)

            }

            

           

            uTxtContent.numberOfLines = 0

            uTxtContent.snp.makeConstraints { (make) -> Void in

                make.top.equalTo(uImgAvatar.snp.bottom).offset(0)

                make.left.equalTo(uItemBox).offset(25)

                make.right.equalTo(uItemBox).offset(-25)

                make.bottom.equalTo(uItemBox).offset(-25)

            }

        }

    }


    required init(coder aDecoder: NSCoder) {

        fatalError("init(coder:) has not been implemented")

    }

    

    override func setSelected(_ selected: Bool, animated: Bool) {

        super.setSelected(selected, animated: animated)

    }

}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值