如何以编程方式将约束添加到 tableView 单元格的默认 textLabel 和 accessoryView

Posted

技术标签:

【中文标题】如何以编程方式将约束添加到 tableView 单元格的默认 textLabel 和 accessoryView【英文标题】:How to Add constraints programmatically to default textLabel and accessoryView of tableView cell 【发布时间】:2017-12-22 09:40:06 【问题描述】:

我有一个单元格,因为我想要默认行为,所以我使用以下方式 -

returnCell.textLabel.text = @"Some long text Some long text";
returnCell.textLabel.lineBreakMode = NSLineBreakByWordWrapping;
returnCell.textLabel.numberOfLines = 0;

UISwitch *toggleSwitch = [[UISwitch alloc] initWithFrame:CGRectZero];
returnCell.accessoryView = toggleSwitch;

[returnCell.contentView setTranslatesAutoresizingMaskIntoConstraints:NO];
[returnCell.textLabel setTranslatesAutoresizingMaskIntoConstraints:NO];

[returnCell addVisualConstraints:@"H:|[contentView]|"
                            forViews:@@"contentView":returnCell.contentView];
[returnCell addVisualConstraints:@"V:|[contentView]|"
                            forViews:@@"contentView":returnCell.contentView];

现在我遇到的问题是,文本如果小的话可以正常工作,但如果它很长,它会落后于开关......

现在我的问题是我如何避免这种情况并在我的 textLabel 和 accessoryView(UISwitch) 之间添加约束来解决这个问题,这两个都是默认的并且没有作为 subView 添加到单元格的 contentView 中??

提前致谢!!!请帮忙。

【问题讨论】:

最好有约束。 首选创建自定义xib单元 【参考方案1】:

枚举 contentView 约束,直到找到带有 textLabeltrailing 约束,并增加/减少它对第一项的常量,直到它离开一些从开关(accessoryView)

【讨论】:

以上是关于如何以编程方式将约束添加到 tableView 单元格的默认 textLabel 和 accessoryView的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式向 topLayoutGuide 添加约束?

如何以编程方式将 UISearchBar 添加到我的 tableView 中?

以编程方式向已以编程方式添加到表格单元格的标签添加约束

如何使用 tableView.dequeueReusableCell 以编程方式将单元格样式添加到单元格?

如何以编程方式将不同单元格的不同图像添加到 tableView (Swift)

如何以编程方式将不同单元格的不同图像添加到 tableView (Swift 3)