Swift Eureka:向ButtonRow添加文本值

时间:2016-07-04 17:19:38

标签: ios swift cocoapods eureka-forms

目前,我通过向单元格添加标签视图来使用ButtonRow获取此结果:

enter image description here

<<< 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,因为它有一点“&gt;”最后,它在以编程方式呈现新视图和视图控制器时效果很好。

使用$0.value = "Some String"不起作用,就像使用其他属性一样。

无论如何都可以这样做而无需手动添加标签视图?它适用于所有屏幕,但我不认为手动设置这些参数是非常安全的。

1 个答案:

答案 0 :(得分:2)

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"
})