UITableViewCell左侧的图像消失
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UITableViewCell左侧的图像消失相关的知识,希望对你有一定的参考价值。
我正在以编程方式设置简单的表视图。一切都没问题,除非我没有将图像设置为单元格的imageView并且只将backgroundColor选项设置为UIColor.black
。它只是消失了,也许有人知道我的问题在这里?
import UIKit
class FriendRequestsController: UITableViewController {
static let cellId = "cellId"
static let headerId = "headerId"
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.title = "Friend Requests"
tableView.separatorColor = UIColor.rgb(229, green: 231, blue: 235)
tableView.sectionHeaderHeight = 26
tableView.register(FriendRequestCell.self, forCellReuseIdentifier: FriendRequestsController.cellId)
tableView.register(RequestHeader.self, forHeaderFooterViewReuseIdentifier: FriendRequestsController.headerId)
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 2
}
override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
cell.backgroundColor = UIColor.blue
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 5
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCell(withIdentifier: FriendRequestsController.cellId)!
//cell.imageView?.image = UIImage(named:"gandhi_profile")
cell.imageView?.backgroundColor = UIColor.black
return cell
}
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 60
}
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let header = tableView.dequeueReusableHeaderFooterView(withIdentifier: FriendRequestsController.headerId) as! RequestHeader
if section == 0 {
header.nameLabel.text = "FRIEND REQUESTS"
} else {
header.nameLabel.text = "PEOPLE YOU MAY KNOW"
}
return header
}
}
class RequestHeader: UITableViewHeaderFooterView {
override init(reuseIdentifier: String?) {
super.init(reuseIdentifier: reuseIdentifier)
setupViews()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
let nameLabel: UILabel = {
let label = UILabel()
label.text = "FRIEND REQUESTS"
label.font = UIFont.systemFont(ofSize: 10)
label.textColor = UIColor(white: 0.4, alpha: 1)
return label
}()
let bottomBorderView: UIView = {
let view = UIView()
view.backgroundColor = UIColor.rgb(229, green: 231, blue: 235)
return view
}()
func setupViews() {
addSubview(nameLabel)
addSubview(bottomBorderView)
addConstraintsWithFormat("H:|-8-[v0]-8-|", views: nameLabel)
addConstraintsWithFormat("V:|[v0][v1(0.5)]|", views: nameLabel, bottomBorderView)
addConstraintsWithFormat("H:|[v0]|", views: bottomBorderView)
}
}
class FriendRequestCell: UITableViewCell {
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: .subtitle, reuseIdentifier: reuseIdentifier)
// setupViews()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
}
所以在我添加背景颜色和删除图像的地方,它就消失了(
答案
据我说,你应该在FriendRequestCell
方法得到cellForRowAt indexPath
。
请找到这个,
我为Cell创建了ListTableCell和xib,请在这里找到我的ListTableCell,
class ListTableCell: UITableViewCell {
@IBOutlet weak var imgView: UIImageView!
@IBOutlet weak var lblTemp: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
在ViewController上,
override func viewDidLoad() {
super.viewDidLoad()
let nib = UINib(nibName: "ListTableCell", bundle: nil)
tblList.register(nib, forCellReuseIdentifier: "ListTableCell")
getItems()
}
func getItems() {
for i in 0...20 {
arrItems.append("Test (i)")
}
}
extension Tab2VC: UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrItems.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ListTableCell", for: indexPath) as! ListTableCell
//cell.imgView.image = #imageLiteral(resourceName: "yelp")
cell.imgView.backgroundColor = UIColor.red
cell.lblTemp.text = arrItems[indexPath.row]
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 60
}
}
它对我来说很好,请尝试这个。
以上是关于UITableViewCell左侧的图像消失的主要内容,如果未能解决你的问题,请参考以下文章
将 UITableViewCell 引用传递给其他 VC 使其消失
如何为选择多行时使用的 UITableViewCell 图像蒙皮?
更改 UITableViewCell 附件后 UITableViewCellAccessoryDetailDisclosureButton 消失