当内容适合屏幕时如何禁用UITableView表中的滚动

2020/10/31 18:52 · ios ·  · 0评论

我的iPhone应用程序中有一些(分组样式)表(仅在屏幕的一部分上,并且添加了Interface Builder,但未从中添加UITableViewController),而80%的时间很小,并且可以在屏幕上显示。当表格适合屏幕时,我想禁用滚动功能,以使其更加整洁。但是,如果表格不显示在屏幕上(以后再添加行时),我想再次启用滚动功能(因为否则您将看不到该内容。)

有没有办法做到这一点?我似乎无法弄清楚。我确实知道要这样做:

tableView.scrollEnabled = NO;

但是我不确定在哪里,或者我是否必须计算表对象的大小或某种方法才能使其正常工作。


更新:这是最终对我有用的解决方案:

if (table.contentSize.height < table.frame.size.height) {
   table.scrollEnabled = NO;
 }
else {
   table.scrollEnabled = YES;
 }

我在调用reloadData后运行此代码,它计算出正确的大小并似乎可以工作。

table.frame.size.heightInterface Builder屏幕上显示的对象的实际大小(可以在中看到),而是以下table.contentSize.height对象的高度:页眉,页脚和每个单元格加在一起的高度。

我想你要设定

tableView.alwaysBounceVertical = NO;

在Swift中:

tableView.alwaysBounceVertical = false

您可以使用此功能验证可见单元的数量:

- (NSArray *)visibleCells

此方法将返回一个包含可见单元格的数组,因此您可以计算该数组中的对象数,并与表中的对象数进行比较..如果相等,则可以使用以下方式禁用滚动:

tableView.scrollEnabled = NO;

正如@Ginny所提到的..部分可见的单元格可能会有问题,因此这种解决方案在这种情况下效果更好:

tableView.scrollEnabled = (tableView.contentSize.height <= CGRectGetHeight(tableView.frame));

如果您使用的是autoLayout,请执行以下解决方案:

tableView.alwaysBounceVertical = NO.

因此,存在多个答案,并且一次需要所有内容,因此我添加了以下答案:

如果您使用的是自动版式,则仅通过设置即可适用于您:

  • 在代码中:

tableView.alwaysBounceVertical = false

  • 或在Interface Builder中:

只需找到此选项和untickBounce Vertically”选项即可。

这是参考:

在此处输入图片说明

如果您不使用自动版式:

 override func viewDidLayoutSubviews() {
    // Enable scrolling based on content height
    tableView.isScrollEnabled = tableView.contentSize.height > tableView.frame.size.height
 }

尝试这个

[yourTableView setBounces:NO];

您可以通过在“滚动视图”区域中选择/取消选择这些设置来设置启用/禁用弹跳或滚动表格视图

滚动视图编辑区域

您可以在情节提要中进行编辑(如果使用的是一个)。在表格视图下,有一个复选框,显示“已启用滚动”。取消选中它就完成了。

// Enable scrolling based on content height
self.tableView.scrollEnabled = table.contentSize.height > table.frame.size.height;

我相信一个表格单元的默认高度是44.0f。您必须将数据源放在数组中吗?然后只需检查是否[array count]*44.0f超出了框架范围,如果已设置tableview.scrollEnabled = NO,则将其设置为“是”。在为该特定表视图找出数据源的位置执行此操作。

本文地址:http://ios.askforanswer.com/dangneirongshihepingmushiruhejinyonguitableviewbiaozhongdegundong.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!