答案 0 :(得分:2)
试试这个:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:YES]
[self.tableView setFrame:CGRectMake(x, y, width, height)];
}
答案 1 :(得分:1)
试试这个
在viewWillAppear
- (void)viewWillAppear:(BOOL)animated
{
self.view.frame = CGRectMake(0, 0, 200, 200);
[super viewWillAppear:animated];
}
或更改
调用以通知视图控制器其视图即将布局 当视图的边界发生变化时,视图会调整其子视图的位置。
因此,不会在视图中显示,而是超越 willLayoutSubviews :
-(void)viewWillLayoutSubviews{
[super viewWillLayoutSubviews];
self.view.frame = CGRectMake(0, 0, 200, 200);
}
或有效的方式
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:YES]
[self.tableView setFrame:CGRectMake(x, y, 200, 200)];
}
<强> swift3 强>
更改viewWillAppear
override func viewWillAppear(_ animated: Bool) {
self.view.frame = CGRect(x: CGFloat(0), y: CGFloat(0), width: CGFloat(200), height: CGFloat(200))
super.viewWillAppear(animated)
}
或更改
调用以通知视图控制器其视图即将布局 当视图的边界发生变化时,视图会调整其子视图的位置。
因此,不会在视图中显示,而是超越 willLayoutSubviews :
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
self.view.frame = CGRect(x: CGFloat(0), y: CGFloat(0), width: CGFloat(200), height: CGFloat(200))
}
或有效的方式
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
self.tableView.frame = CGRect(x: CGFloat(x), y: CGFloat(y), width: CGFloat(200), height: CGFloat(200))
}
答案 2 :(得分:0)
为什么需要更改宽度?
class MyTableViewCell: UITableViewCell {
override func layoutSubviews() {
super.layoutSubviews()
self.frame.size.width = 200
}
}