【发布时间】:2014-10-14 07:32:07
【问题描述】:
大家好,我正在尝试创建自定义 UITableViewCell,但我在模拟器上什么也看不到。你能帮帮我吗?
只有var labUserName = UILabel(frame: CGRectMake(0.0, 0.0, 130, 30));才能看到标签
但它与单元格重叠。没看懂,Auto Layout 应该知道每个单元格的首选尺寸/最小尺寸吧?
谢谢
import Foundation
import UIKit
class TableCellMessages: UITableViewCell {
var imgUser = UIImageView();
var labUserName = UILabel();
var labMessage = UILabel();
var labTime = UILabel();
override init(style: UITableViewCellStyle, reuseIdentifier: String) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
imgUser.layer.cornerRadius = imgUser.frame.size.width / 2;
imgUser.clipsToBounds = true;
contentView.addSubview(imgUser)
contentView.addSubview(labUserName)
contentView.addSubview(labMessage)
contentView.addSubview(labTime)
//Set layout
var viewsDict = Dictionary <String, UIView>()
viewsDict["image"] = imgUser;
viewsDict["username"] = labUserName;
viewsDict["message"] = labMessage;
viewsDict["time"] = labTime;
//Image
//contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-[image(100)]-'", options: nil, metrics: nil, views: viewsDict));
//contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-[image(100)]-|", options: nil, metrics: nil, views: viewsDict));
contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-[username]-[message]-|", options: nil, metrics: nil, views: viewsDict));
contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-[username]-|", options: nil, metrics: nil, views: viewsDict));
contentView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-[message]-|", options: nil, metrics: nil, views: viewsDict));
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
【问题讨论】:
-
如果您在单元格中看到重叠的图像,则可能是单元格高度设置不正确。见:stackoverflow.com/questions/494562/…
-
我只在使用 CGRectMake 时看到重叠,但我不想使用 CGRectMake,我想自动使用,
-
我想要自动布局来控制大小,这是我不明白的一件事。
-
请帮忙,里面的标签应该有自己的尺寸,不用我告诉他们尺寸是多少?
-
我知道这个线程很旧,对我来说,当标签、视图等所有 UI 元素上的“translatesAutoresizingMaskIntoConstraints = false”时,约束效果更好
标签: ios uitableview swift custom-controls