在UITableViewRowAction中,可以通过更改标题和放入空格来操纵动作的宽度。您使用的空间越多,您的动作占据行的区域就越宽。
使用新的UIContextualAction,在标题中放置空格并不做任何事情。操作系统确定操作的确切空间。我需要显示5种不同的动作选项,在较小的设备上,我再也无法适应5.是否有人知道如何控制视图中每个区域的大小?
func setupAction(_ indexVar: Int) -> UIContextualAction {
let editAction = UIContextualAction(style: .normal, title: " ", handler: { (ac:UIContextualAction, view:UIView, success:(Bool) -> Void) in
//do something
success(true)
})
editAction.image = UIImage(named: "TestImage")
editAction.backgroundColor = .red
return editAction
}
答案 0 :(得分:3)
在iOS11中似乎只接受特定尺寸的图像或仅用于textviewcell滑动的文字。
另一个选项(我不推荐)是向tableview添加手势。
或者向tableviewcell添加手势;比如,最初在自定义单元格中创建一个视图,并将PanGestureRecognizer应用于单元格中的此视图。添加自定义单元格所需的按钮,当您在自定义单元格中滑动视图时,自定义单元格中的按钮将可见。
答案 1 :(得分:0)
tldr :现在就使用任何现有的框架,或者自己创建。
我已经在iOS 11上处理这个问题了好几天了。我能得到的最好结果是通过programmaticaly在图像底部添加透明空间,使其填满行的整个高度。通过此操作,并将 clipsToBounds 设置为单元格,标题位于单元格视图之外且不可见,我可以使用任何字符来增加操作按钮的宽度,例如“XXXXX”字符串。 / p>
但是有些情况下标题仍然可见,即使我设置了clipsToBounds。为了最小化它的可见性,我在边缘设置了空格和点,如“。(空格)(空格)(空格)。”。
最后,由于标题(由点和空格组成)仍然可见,我最终在tableViewCell中创建了自己的动作按钮。