1

現在、セルにラベル ビューを追加することにより、ButtonRow を使用してこの結果を取得しています。

ここに画像の説明を入力

<<< ButtonRow("Email") {
            $0.title = $0.tag
            $0.presentationMode = PresentationMode.Show(...)
            }.cellSetup {
                cell, row in

                let text = UILabel(frame: cell.frame)
                text.frame.size.width = 0.909 * currentScreenWidth - 68
                text.frame.origin.x = 68
                text.textColor = UIColor(red: 142/255, green: 142/255, blue: 147/255, alpha: 1)
                text.textAlignment = .Right
                text.text = "fakeEmail@email.com"
                cell.addSubview(text)
 }

最後に小さな ">" があるため、ButtonRow を使用しています。新しいビューとビュー コントローラーをプログラムで表示するときにうまく機能します。

他のプロパティと同様に、使用$0.value = "Some String"は機能しません。

手動でラベル ビューを追加しなくてもこれを行う方法はありますか? すべての画面で機能しますが、これらのパラメータを手動で設定するのはあまり安全ではないと思います.

4

1 に答える 1

5

ButtonRow の実装は、セル オブジェクトを初期化するときに UITableViewCellStyle 'default' を使用します。ButtonRow のサブクラスを作成できます。

public final class DetailedButtonRowOf<T: Equatable> : _ButtonRowOf<T>, RowType {
    public required init(tag: String?) {
        super.init(tag: tag)
        cellStyle = .value1
    }
}
public typealias DetailedButtonRow = DetailedButtonRowOf<String>

次に、行の detailLabelText を指定できます。

<<< DetailedButtonRow("Email") { row in
    row.title = row.tag
    row.presentationMode = .segueName(segueName: "AStoryboardSegue", onDismiss: nil)
}.cellUpdate({ (cell, row) in
    cell.detailTextLabel?.text = "fakeEmail@email.com"
})
于 2016-10-13T07:02:44.060 に答える