2017-09-26 26 views
2

UITableViewRowActionでは、アクションの幅は、タイトルを変更してスペースを入れることで操作できます。使用するスペースが増えれば、その行であなたの行動が占めるスペースが広がります。iOS11でUIContextualActionの幅を指定する方法はありますか?

新しいUIContextualActionでは、タイトルにスペースを入れることは何もしません。 OSは、アクションがどれくらいのスペースを占めるかを正確に決定します。私は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で処理しています。私が得ることができる最高の結果は、プログラムのように、画像の下部に透明なスペースを追加して、行の高さ全体を塗りつぶすことでした。これにより、clipsToBoundsをセルに設定すると、タイトルはセルのビューの外にあり、非表示になり、任意の文字を使用して「XXXXX」のようなアクションボタンの幅を増やすことができました。

しかし、clipsToBoundsを設定しても、タイトルがまだ見える場合がありました。視認性を最小限に抑えるため、私は隙間にドットを入れて、"。(スペース)(スペース)(スペース)のように設定します。

最終的には、タイトル(ドットとスペースで構成されています)が表示されていたため、私はtableViewCellで自分のアクションボタンを作成することになりました。

3

iOS11では、特定のサイズまたはテキストの画像のみがtableviewcellのスワイプとして受け入れられます。

もう1つのオプション(私はお勧めできません)は、テーブルビューにジェスチャーを追加することです。

または、tableviewcellにジェスチャを追加します。最初にカスタムセルにビューを作成し、セル内のこのビューにPanGestureRecognizerを適用します。カスタムセルに必要なボタンを追加します。カスタムセルのビューをスワイプすると、カスタムセルのボタンが表示されます。

関連する問題