我已经在方法- (void)viewDidLoad中设置了tableView的contentInset,并且属性是self.tableView.contentInset = UIEdgeInsetsMake(200, 0, 200, 0);但是,tableView.contentInset会自动更改为:{64, 0, 0, 0}。为什么会发生这种情况,我该如何解决这个问题?

环境:XCode8.1 iOS10.1

    #import "YAVideoViewController.h"
static NSString * const ID = @"cell";
@interface YAVideoViewController ()

@end

@implementation YAVideoViewController

- (void)viewDidLoad {
    [super viewDidLoad];



    self.view.backgroundColor = [UIColor arcColor];
    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:ID];

    self.tableView.contentInset = UIEdgeInsetsMake(200, 0, 200, 0);
}



- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    return 50;
}



- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID forIndexPath:indexPath];

    cell.textLabel.text = [NSString stringWithFormat:@"第%ld个cell",indexPath.row];

    return cell;
}

@end

最佳答案

您需要在viewDidAppear或viewDidLayoutSubviews方法中更改内容插图。

- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];
    self.tableView.contentInset = UIEdgeInsetsMake(200, 0, 200, 0);
}

关于ios - UITableView contentInset更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40424581/

10-09 02:17