我发现了很多关于此的问题,但它们都使用了initWithFrame。有没有办法严格使用autolayout?
我尝试将附件视图设置为按钮并向单元格添加约束,并将按钮添加为附件视图的子视图并向附件视图添加约束。这是我最有希望的尝试:
button.translatesAutoresizingMaskIntoConstraints = NO;
cell.accessoryView.translatesAutoresizingMaskIntoConstraints = NO;
[cell.accessoryView addSubview:button];
NSDictionary *varDict = NSDictionaryOfVariableBindings(button);
[cell.accessoryView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[button]|" options:0 metrics:nil views:varDict]];
[cell.accessoryView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[button]|" options:0 metrics:nil views:varDict]];
它一直告诉我它无法解析约束,因为相关视图没有超视图。我打电话给addSubview!发生了什么事?
答案 0 :(得分:2)
您可能不希望禁用translatesAutoresizingMaskIntoConstraints
的{{1}},因为您希望将cell.accessoryView
的布局保留在accessoryView
内,对吧?如果是,您应该删除此行:
cell
答案 1 :(得分:0)
我不知道您是否可以将按钮添加为附件视图的子视图。 但我已将按钮设置为附件视图,之后,我在按钮上调用了sizeToFit。它对我有用。
UIButton *button = [[UIButton alloc] init];
[button setTitle: @"title" forState:UIControlStateNormal];
cell.accessoryview = button;
[button sizeToFit];
Swift版本:
var button = UIButton()
button.setTitle("title", forState: UIControlState.Normal)
cell.accessoryview = button
button.sizeToFit()
希望这会对某人有所帮助。