繁体   English   中英

iOS-如何在TableViewController中设置TableView的宽度?

[英]iOS - How to set width of TableView in TableViewController?

使用TableViewController,如何调整其中的单元格的长度?

如您所见,单元格的长度扩展到整个显示。 我该如何减少呢?

尝试这个:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:YES]
    [self.tableView setFrame:CGRectMake(x, y, width, height)];
}

尝试这个

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)];
}

迅捷3

更改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))
}

为什么需要更改宽度?

  • 如果要在表视图的左侧或右侧放置另一个视图,请尝试UISplitviewController。
  • 如果要在表格视图中使用单元格边距,建议使用以下方法子类化UITableViewCell并设置宽度:
class MyTableViewCell: UITableViewCell {
    override func layoutSubviews() {
        super.layoutSubviews()
        self.frame.size.width = 200
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM