2017-09-26 134 views
2

在UITableViewRowAction中,可以通過更改標題並放入空格來操作動作的寬度。你使用的空間越多,你的行爲就會佔用更多的空間。有沒有辦法在iOS11中指定UIContextualAction的寬度?

隨着新的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

tldr:使用任何現有的框架,這一點,或使自己的,現在是這樣。

我一直在iOS 11上處理這個問題幾天了。我能得到的最好結果是通過programmaticaly在圖像底部添加透明空間,以填充行的整個高度。通過這個設置,並將單元格設置爲clipsToBounds,標題位於單元格視圖的外部並且不可見,我可以使用任何字符來增加操作寬度的按鈕,例如「XXXXX」字符串。

但是在某些情況下,即使我設置了clipsToBounds,標題仍然可見。爲了最小化它的可見性,我在邊緣設置了空格和點,如「(空格)(空格)(空格)」。

最後,由於標題(由點和空格組成)仍然可見,我最終在tableViewCell中創建了自己的操作按鈕。

3

看起來在iOS11中,只有特定大小的圖像或文本纔會被接受用於tableviewcell刷卡。

另一個選項(我不建議)是向tableview添加手勢。

或向tableviewcell添加手勢;比如,最初在自定義單元格中創建一個視圖,並將PanGestureRecognizer應用於單元格中的此視圖。添加自定義單元格所需的按鈕,當您滑動自定義單元格中的視圖時,自定義單元格中的按鈕應可見。

相關問題