【问题标题】:Change height of UITableView programmatically以编程方式更改 UITableView 的高度
【发布时间】:2014-07-05 18:34:20
【问题描述】:

我有一个UITableView,我想根据其中包含的单元格数量以编程方式更改其高度。

你能帮帮我吗?

【问题讨论】:

  • 您尝试做的事情是错误的。 UITableView 将根据它包含的单元格数量(取决于数据源)自动调整其内容大小(滚动区域)。
  • 你可以这样做。在您的 numberOfRowsInSection 方法中更改 UITableView self.tableView.frame = CGRectMake(x,y,width,height); 的帧大小

标签: objective-c uitableview


【解决方案1】:

您可以使用此代码

self.yourTableView.frame = CGRectMake(x,y,width,noOfCell*heightOfOneCell);

【讨论】:

  • 对于任何想知道的人......这是正确的答案。为我工作。谢谢@souvickcse。
【解决方案2】:

您可以观察tableView.contentSize 的变化并将值绑定到frame,请记住您可能会遇到内存问题,因为表格视图不会回收单元格

【讨论】:

    【解决方案3】:

    你试过sizeToFitsizeThatFits:吗?

    CGRect tFrame = tableView.frame;
    tFrame.size.height = MIN([tableView sizeThatFits: CGSizeMake(tFrame.size.width,
                                                                 CGFLOAT_MAX)].height,
                             MaximumTableHieght);
    tableView.frame = tFrame;
    

    或者试试这个(我不记得哪个对我有用)。

    CGRect tFrame = tableView.frame;
    tFrame.size.height = MIN(tableView.contentSize.height,
                             MaximumTableHieght);
    tableView.frame = tFrame;
    

    【讨论】:

    • 嗨不幸的是它不起作用,我什至不知道为什么......我使用了代码,但没有任何反应!基本上,我有一个滚动视图,顶部有一个 UIImageView,底部有一个 UITableView,有一些单元格,我希望整个内容一起滚动……但显然要做到这一点,我需要将所有单元格查看到 tableView 中。 ..所以,我需要根据其内容调整它的大小。有什么想法吗?
    • 尝试编辑第二个版本,我只是不记得哪个效果好。
    猜你喜欢
    • 2023-01-17
    • 1970-01-01
    • 1970-01-01
    • 2014-11-21
    • 2014-01-22
    • 2017-04-25
    • 2012-08-13
    • 1970-01-01
    • 2017-02-28
    相关资源
    最近更新 更多