iOS eureka-forms Скрытое условие LabelRow не оценивается

Настраивать

  • Свифт 3.1
  • iOS 10.0
  • Эврика 3.0

Проблема

Невозможно сделать LabelRow скрытие вместе с TextAreaRow скрытым состоянием. Метка определяется перед добавлением обоих в раздел. Он добавляется поверх текста.

Код

После нескольких различных способов определения Condition при отладке кажется, что функция не вызывается. Только в первых двух он вызывается один раз, но не тогда, когда TextAreaRow меняется на скрытие или отображение

    let switchRowTag = "switchRowTag"
    form +++ section
        <<< SwitchRow(switchRowTag) { row in
            row.title = "Select me"}

    // Test hiding functions ========================
    let tag = "textArea"
    let title = "Test Hiding"
    let labelTag = "\(tag)_label"
    let textArea = TextAreaRow(tag) {
        $0.title = title
        $0.tag = tag
        $0.placeholder = title
        $0.textAreaHeight = .dynamic(initialTextViewHeight: 110)
        $0.hidden = Condition.predicate(NSPredicate(format: "$\(switchRowTag) == false"))
    }
    let labelRow = LabelRow(labelTag) {
        $0.title = title
        $0.tag = labelTag
        /* try setting the function after adding to the section
        $0.hidden = Condition.function([tag], { form in
            if let textRow = form.rowBy(tag: tag) as? TextAreaRow {
                return textRow.isHidden
            } else {
                return false
            }
        })
         */
    }

    section <<< labelRow <<< textArea
    // Is never evaluated
    /*
    labelRow.hidden = Condition.function([tag], { form in
        if let textRow = form.rowBy(tag: tag) as? TextAreaRow {
            return textRow.isHidden
        } else {
            return false
        }
    })
     */
    if let labelRow = form.rowBy(tag: labelTag) as? LabelRow {
        labelRow.hidden = Condition.function([tag], { form in
            if let textRow = form.rowBy(tag: tag) as? TextAreaRow {
                return textRow.isHidden
            } else {
                return false
            }
        })
    }

person Efren    schedule 26.07.2017    source источник
comment
Кажется, нет простого способа добавить заголовок в TextAreaRow, поэтому я пытался добавить LabelRow. Причина, по которой условие должно исходить из скрытого состояния другой строки, заключается в том, что все условия обрабатываются отдельно.   -  person Efren    schedule 26.07.2017


Ответы (1)


В настоящее время он не поддерживается.

Eureka поддерживает только повторную оценку скрытых условий, когда строка, связанная с зависимым тегом, имеет только изменение значения. Не изменение видимости (ref).

person Efren    schedule 26.07.2017