要以编程方式将UILabel和UIImageView添加到UITableView的单元格中,可以按照以下步骤进行操作:
下面是一个示例代码:
import UIKit
class CustomTableViewCell: UITableViewCell {
let label = UILabel()
let imageView = UIImageView()
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
// 设置UILabel的属性
label.font = UIFont.systemFont(ofSize: 16)
label.textColor = UIColor.black
// 设置UIImageView的属性
imageView.contentMode = .scaleAspectFit
// 添加UILabel和UIImageView到单元格中
contentView.addSubview(label)
contentView.addSubview(imageView)
// 使用Auto Layout布局UILabel和UIImageView
label.translatesAutoresizingMaskIntoConstraints = false
imageView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
label.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 16),
label.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 8),
label.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -8),
imageView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -16),
imageView.centerYAnchor.constraint(equalTo: contentView.centerYAnchor),
imageView.widthAnchor.constraint(equalToConstant: 40),
imageView.heightAnchor.constraint(equalToConstant: 40)
])
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
let tableView = UITableView()
override func viewDidLoad() {
super.viewDidLoad()
// 设置UITableView的数据源和代理
tableView.dataSource = self
tableView.delegate = self
// 注册自定义的UITableViewCell类
tableView.register(CustomTableViewCell.self, forCellReuseIdentifier: "CustomCell")
// 添加UITableView到视图中
view.addSubview(tableView)
// 使用Auto Layout布局UITableView
tableView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
tableView.topAnchor.constraint(equalTo: view.topAnchor),
tableView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
])
}
// UITableViewDataSource方法
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as! CustomTableViewCell
// 设置UILabel和UIImageView的值
cell.label.text = "Label \(indexPath.row)"
cell.imageView.image = UIImage(named: "image\(indexPath.row)")
return cell
}
// UITableViewDelegate方法
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 60
}
}
这样,你就可以以编程方式将UILabel和UIImageView添加到UITableView的单元格中了。
领取专属 10元无门槛券
手把手带您无忧上云