Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 有没有办法在iOS11中指定UIContextualAction的宽度?_Swift_Uitableview_Ios11 - Fatal编程技术网

Swift 有没有办法在iOS11中指定UIContextualAction的宽度?

Swift 有没有办法在iOS11中指定UIContextualAction的宽度?,swift,uitableview,ios11,Swift,Uitableview,Ios11,在UITableViewRowAction中,可以通过更改标题和添加空格来操纵操作的宽度。您使用的空间越多,您的操作在行中所占的区域就越大 使用新的UIContextualAction,在标题中添加空格没有任何作用。操作系统决定动作的确切空间大小。我需要展示5个不同的动作选项,在较小的设备上,我再也不能适应5个。有人知道控制视图中每个区域大小的方法吗 func setupAction(_ indexVar: Int) -> UIContextualAction { let edit

在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
}

tldr:使用任何现有的框架,或者现在就创建自己的框架

我已经在iOS 11上处理这个问题好几天了。我能得到的最好结果是通过编程在图像底部添加透明空间,这样它就可以填充整行的高度。通过此操作,并将clipsToBounds设置到单元格,标题位于单元格视图之外,不可见,我可以使用任何字符来增加操作按钮的宽度,例如“XXXXX”字符串

但在某些情况下,即使我设置了剪贴簿,标题仍然可见。为了最小化它的可见性,我在边缘设置了空格和点,比如“(空格)(空格)(空格)。”


最后,由于标题(由点和空格组成)仍然可见,我最终在tableViewCell中创建了自己的操作按钮。

在iOS11中,tableViewCell滑动似乎只接受特定大小的图像或文本

另一个选项(我不推荐)是向tableview添加手势

或向tableviewcell添加手势;与之类似,首先在自定义单元格中创建一个视图,然后将PangestureRecognitor应用于单元格中的该视图。将所需的按钮添加到自定义单元格中,当您在自定义单元格中滑动视图时,自定义单元格中的按钮应可见