系统相关
首页 > 系统相关> > ios系统中怎么设置UITableView 不可滑动?

ios系统中怎么设置UITableView 不可滑动?

作者:互联网

方法一:禁用 UIScrollView 的滑动

UITableView 是 UIScrollView 的子类,因此你可以通过设置 isScrollEnabled 属性为 false 来禁用滑动:

Swift

tableView.isScrollEnabled = false

Swift

Objective-C

self.tableView.scrollEnabled = NO;

Objective-C

方法二:使用 contentSize 结合 contentOffset

如果你希望 UITableView 的内容始终显示在可见区域内并不允许滑动,你也可以设置 contentSize 大小等于 frame 的大小。同时将 contentOffset 属性的值固定:

Swift

tableView.contentSize = tableView.frame.size
tableView.setContentOffset(CGPoint.zero, animated: false)

Swift

Objective-C

self.tableView.contentSize = self.tableView.frame.size;
[self.tableView setContentOffset:CGPointZero animated:NO];

Objective-C

方法三:覆盖 touches 方法(不推荐)

如果你希望在更复杂的情况下完全禁用用户的触摸事件,可以通过子类化 UITableView 并重写 touches 方法来忽略触摸事件,但这种方法不太推荐,因为它可能会影响到表格的其他交互操作。

Swift

class NonScrollableTableView: UITableView {
    override func touchesShouldCancel(in view: UIView) -> Bool {
        return false
    }
}

Swift

Objective-C

@interface NonScrollableTableView : UITableView
@end

@implementation NonScrollableTableView

- (BOOL)touchesShouldCancelInContentView:(UIView *)view {
    return NO;
}

@end

Objective-C

标签:
来源: