ios – 仅使用autolayout(无initwithframe),为UITableViewCell配置accessoryview按钮

我发现了很多关于此的问题,但它们都使用了initWithFrame.有没有办法严格使用autolayout?

我已经尝试将accessoryview设置为按钮并向单元格添加约束,并将按钮添加为附件视图的子视图并向附件视图添加约束.这是我最有希望的尝试:

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!这是怎么回事?

最佳答案 您可能不希望禁用cell.accessoryView的translatesAutoresizingMaskIntoConstraints,因为您想要将accessoryView的布局保留在单元格内,对吧?如果是,您应该删除此行:

cell.accessoryView.translatesAutoresizingMaskIntoConstraints = NO;
点赞