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
标签: 来源: