我有一个表格视图,其中具有卡片类型的单元格,如图所示。 我已经设置了内容插图,这样我就可以在左,右和顶部获得20px间距的单元格。 tableVw.contentInset = UIEdgeInsets(顶部:20,左侧:20,底部:0,右侧:20)
它按预期显示,但问题是,单元可以向各个方向移动。但是,当我将其移至右侧/顶部时,它会自动返回到原始位置。但是,当我向左移动时,它就进入了内部,并且没有如图所示滚动回到原始位置。
我不希望这些单元格完全移动,或者如果它们也拖动到任何位置,我希望这些单元格回到中心位置。请帮忙!
答案 0 :(得分:0)
不提供uiedgeinsets到tableview,而是在uitableview单元格中添加一个覆盖整个单元格的视图,并在该视图中添加另一个uiview,并给出顶部底部前导尾随等于8或任何您想要的约束,然后该单元格无论如何都不会移动,并且您的tableview单元格看起来将具有edgeinsets。
答案 1 :(得分:0)
如果您使用的是自动版式,则只需设置此项即可为您工作:
在代码中:
tableView.alwaysBounceVertical = false
或在Interface Builder中: 只需找到此选项,然后取消选中“垂直反弹”选项即可。
这里是参考:
如果您不使用自动版式:
override func viewDidLayoutSubviews() {
// Enable scrolling based on content height
tableView.isScrollEnabled = tableView.contentSize.height > tableView.frame.size.height
}
,然后尝试clipToBounds
tableview.clipsToBounds = true
答案 2 :(得分:0)
您需要设置clipsToBounds
属性true
tableview.clipsToBounds = true
答案 3 :(得分:0)
我通过下面的代码实现了我想要的。
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
}
}
现在,如果我向左或向右拖动单元格,它也会恢复到原始位置。