UIButton 未显示在 TableView 下方

UIButton is not displaying below the TableView

提问人:mtk2021 提问时间:1/8/2022 最后编辑:koenmtk2021 更新时间:1/9/2022 访问量:55

问:

我有一个视图控制器,我向其添加了一个 tableView 和一个“完成”按钮。

我能够成功地将表视图添加到我的视图控制器,但我的“完成”按钮没有显示。

tableview 应该显示在视图的顶部,而 done 按钮应该显示在 tableview 下方的底部。

仅显示表视图,并占据整个屏幕。

您能说明问题是什么吗?我的约束有问题吗?

谢谢!

@interface MyView : UIViewController<UITableViewDelegate, UITableViewDataSource>

@end

@interface MyView ()

@property (nonatomic, strong) UITableView *tableView;
@property (nonatomic, strong) UIButton *doneButton;

@end

@implementation MyView

- (void)viewDidLoad {
    [super viewDidLoad];
    _tableView = [[UITableView alloc] initWithFrame:CGRectZero];
    _tableView.delegate = self;
    _tableView.dataSource = self;
    self.view.backgroundColor = [UIColor yellowColor];
    [_tableView registerClass:UITableViewCell.class forCellReuseIdentifier:@"cell"];
    [self.view addSubview:_tableView];
    [_tableView setTranslatesAutoresizingMaskIntoConstraints:NO];
    [NSLayoutConstraint activateConstraints:@[
        [_tableView.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor constant:10],
        [_tableView.trailingAnchor constraintEqualToAnchor:self.view.trailingAnchor constant:-10],
        [_tableView.topAnchor constraintEqualToAnchor:self.view.topAnchor constant:20],
        [_tableView.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor]
    ]];
    self.view.largeContentTitle = @"Title";
    self.title = @"Title";
    _doneButton = [UIButton buttonWithType:UIButtonTypeSystem];
    _doneButton.backgroundColor = [UIColor blueColor];
    [self.view addSubview:_doneButton];
    [_doneButton setTranslatesAutoresizingMaskIntoConstraints:NO];
    [NSLayoutConstraint activateConstraints:@[
        [_doneButton.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor],
        [_doneButton.trailingAnchor constraintEqualToAnchor:_tableView.trailingAnchor],
        [_doneButton.topAnchor constraintEqualToAnchor:_tableView.bottomAnchor],
        [_doneButton.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor]
    ]];

    //[_tableView.bottomAnchor constraintEqualToAnchor:_doneButton.topAnchor].active = YES;
    // Do any additional setup after loading the view.
}

这是一张截图,附上。表视图显示为白色和粉红色,而视图(包含该表视图)显示为黄色。这个黄色的视图控制器显示在另一个视图控制器的顶部......

附上屏幕截图,包含在“黄色视图 - 完成”按钮中的 tableView 未显示:

enter image description here

iOS Objective-C UITableView UIBuint

评论

0赞 Paulw11 1/8/2022
您已将表视图的底部限制为超级视图的底部。你不想要那样。您还有一个从表视图底部到按钮顶部的冗余约束。您之前已将按钮的顶部限制为表视图的底部
1赞 matt 1/8/2022
只需使用 View Debugger 即可。您将立即看到问题所在。
0赞 mtk2021 1/8/2022
谢谢@Paulw11 - 我删除了从表视图底部到超级视图底部的约束,我的按钮就出现了。谢谢!
0赞 Larme 1/8/2022
正如 matt 所说,下次,您可以检查 developer.apple.com/library/archive/documentation/... 它可能会帮助您调试;)

答: 暂无答案