繁体   English   中英

UITableView Cell不应该横向滚动swift iOS

[英]UITableView Cell should not scroll horizontally swift iOS

我有一个表格视图,其中有卡片类型的单元格,如图所示。 我已经设置了内容插入,以便我可以在左,右和顶部获得20px间距的单元格。 在此输入图像描述 tableVw.contentInset = UIEdgeInsets(上:20,左:20,下:0,右:20)

它按照我的预期显示,但问题是,细胞可以向各个方向移动。 但当我将它移动到右/顶部时,它会自动回到原始位置。 但是当我向左移动它只是进入内部并且不会滚动回到原始位置,如图所示。 在此输入图像描述

我不希望细胞完全移动,或者我希望细胞再次移动到中心位置。 请帮忙!

不要在tableview中提供uiedgeinsets,而是在uitableview单元格中添加一个视图,覆盖整个单元格,并在该视图中添加另一个uiview,并从顶部底部前导尾部等于8或任何你想要的约束,然后单元格不会移动和你的tableview单元格看起来它有edgeinsets。

如果你正在使用AutoLayout,通过设置它只适用于你:

在代码中:

tableView.alwaysBounceVertical = false

或者在Interface Builder中:只需找到此选项并取消选中“Bounce Vertically”选项。

这是参考:

在此输入图像描述

如果您没有使用AutoLayout:

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

并尝试clipToBounds

tableview.clipsToBounds = true

您需要将clipsToBounds属性设置为true

tableview.clipsToBounds = true

我通过下面的代码实现了我想要的。

postsTable.contentInset = UIEdgeInsets(top: 20, left: 20, bottom: 0, right: -20)

在UITableViewCell类中:

override var frame: CGRect{
    get {
        return super.frame
    }
    set(newFrame){
        var frame = newFrame
        frame.size.width = kScreenWidth - 40
        super.frame = frame
    }
}

现在,如果我向左或向右拖动单元格,它也会回到原始位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM