我正在尝试在左侧生成带有彩色圆圈的UITableViewCell。 我的计划是使用UIButton并操纵其图层的角半径。 但是,彩色按钮永远不会出现。
我的xib:
我的ColorHolder UIButton有一个IBOutlet,颜色是变量。
class ColoredCircleCell: UITableViewCell {
@IBOutlet weak var colorHolder: UIButton!
@IBOutlet weak var infoRow1: UILabel!
@IBOutlet weak var infoRow2: UILabel!
var circleColor: CGColor = UIColor.clear.cgColor
override func awakeFromNib() {
super.awakeFromNib()
colorHolder.layer.cornerRadius = colorHolder.bounds.size.height / 2
colorHolder.layer.backgroundColor = circleColor
colorHolder.clipsToBounds = true
}
在我的cellForRowAt indexPath中:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CircleCell", for: indexPath) as! ColoredCircleCell
print(cell.colorHolder.bounds.size.height)
cell.colorHolder.layer.cornerRadius = cell.colorHolder.bounds.size.height / 2
cell.colorHolder.layer.backgroundColor = UIColor.red.cgColor
cell.infoRow1.text = "H1"
return cell
}
控制台告诉我单元格的大小是1000.我猜它仍然没有调整行高。
编辑:我已将问题缩小到cell.colorHolder.layer.cornerRadius = cell.colorHolder.bounds.size.height / 2
。 cell.colorHolder.bounds.size.height
的值始终为1000.如何在将其呈现到屏幕后提取正确的值?
输出:
如何为UITableViewCell添加可配置的圈子?
答案 0 :(得分:0)
我认为你的设置colorbutton约束就像 topspace到superview和bottomomspace到superView。
如果是这种情况,请将底部空间移除到superView并添加高度约束。
比这个
cell.colorHolder.layer.cornerRadius = cell.colorHolder.bounds.size.height / 2
cell.colorHolder.clipToBounds = true
,它应显示为圆圈。
希望这能解决您的问题
答案 1 :(得分:0)
只需覆盖layoutSubviews
并在那里设置你的角落半径。
- (void)layoutSubviews {
[super layoutSubviews];
self.colorHolder.layer.cornerRadius = self.colorHolder.bounds.size.height / 2;
}
答案 2 :(得分:0)
foreach (IEnumerable<TabItem> item in tabControlList)
{
if (item.Header== "AddRskAreas")
{
item.IsSelected = true;
}
else
{
MessageBox.Show("Tab not found");
}
}
)。
这post帮助了我。
self.layoutIfNeeded(