如何禁用tableView滚动?

时间:2016-09-09 07:00:11

标签: ios swift

默认情况下,当我在viewController中添加tableView时,tableView会滚动,但我希望它是静态的。有可能吗?

这是我的代码:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
   return names.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
    let cell = tableview.dequeueReusableCellWithIdentifier("cell") as! TableViewCell
    cell.username.text = names[indexPath.row]
    return cell
}

func numberOfSectionsInTableView(tableView: UITableView) -> Int
{
    return 1
}

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
    return 50.0
}

4 个答案:

答案 0 :(得分:5)

斯威夫特3:

tableView.isScrollEnabled = false

答案 1 :(得分:2)

在Interface Builder中禁用滚动。 选择表格视图和属性检查器⌥⌘4

然后取消选中滚动已启用

enter image description here

答案 2 :(得分:1)

选项1

尝试在 viewDidLoad()中仅使用以下代码行:

self.tableView.scrollEnabled = tableView.contentSize.height > tableView.frame.height;

这是以下方式:

if tableView.contentSize.height > tableView.frame.height {
    self.tableView.scrollEnabled = true;
}
else {
    self.tableView.scrollEnabled = false;
}

说明:如果行数太多并且填充的空间超过了tableview,则它可以滚动。否则它不会。这就是为什么在代码中将内容大小与窗口大小进行比较。

选项2:

如果你想在所有情况下都禁用滚动,只需在 viewDidLoad()中禁用滚动:

self.tableView.scrollEnabled = false;

注意:如果您为tableView指定了一个特殊名称,请将其替换为我共享您的代码中的tableView名称。

答案 3 :(得分:0)

当内容大小适合表格视图的大小时, UITableView 的滚动条将被停用

 if (tableView.contentSize.height < tableView.frame.size.height) {

   tableView.scrollEnabled = false
 }
else {

   tableView.scrollEnabled = true
 }

如果您想要禁用滚动而不管contentSize:

tableView.scrollEnabled = false

更改 UITableView 的分隔线颜色(根据评论中的要求):

tableView.separatorColor = UIColor(red:0.16, green:0.17, blue:0.20, alpha:1.00)