Arhn - архитектура программирования

Как программно связать UISlider с меткой ниже ползунка, который обычно отображается на всех экранах iphone?

Я создаю массив для диапазона UISlider и помещаю каждое значение в метку под ползунком, но если я меняю экран iPhone (5s, 6s, 8, Xr), метка не показывает правильное положение UISlider ценности.

Как мне связать диапазон значений массива UISLider с меткой ниже для каждого экрана iPhone?

Ожидаемые результаты

Иерархия представления отладки

Существует метод настройки Auto Layout независимо от экрана iPhone. Там, где вы видите Easy.Layout, который является EasyPeasy Auto-Layout, это то же самое, что и документация Apple Auto Layout Constrains.

func setupLabels() {
    let values = [0, 3.7, 11, 22, 43, 50, 100]
    values.forEach({
        let sliderValuesLabel = UILabel()
        if $0 == values.first {
            sliderValuesLabel.text = "ALLE"
            wrapperView.addSubview(sliderValuesLabel)
            sliderValuesLabel.easy.layout(

                Top(15).to(uislider),
                Leading().to(uislider, .leading), // Left Position
                Bottom(1)
            )

        } else if $0 == values.last {
            sliderValuesLabel.text = "\(Int($0))+"
            wrapperView.addSubview(sliderValuesLabel)
            sliderValuesLabel.easy.layout(
                Trailing().to(uislider, .trailing), // Right Position
                Top(15).to(uislider),
                Bottom(1)
            )

        } else  {
            sliderValuesLabel.text = "\(Int($0))"
            wrapperView.addSubview(sliderValuesLabel)

            let thumbRect = uislider.thumbRect(forBounds: uislider.bounds,
                                               trackRect: uislider.trackRect(forBounds: uislider.bounds),
                                               value: uislider.value)
            let thumRectToView = uislider.convert(thumbRect, to: uislider ) // Convert

            sliderValuesLabel.easy.layout(
                Top(15).to(uislider),
                Bottom(1),
                CenterX(thumRectToView.midX)

            )
        }
    })

}

  • Проблема в том, что вы задаете метке фиксированный размер, который будет одинаковым на любом экране. Если вы хотите, чтобы он был отзывчивым, вам придется использовать AutoLayout (используйте множитель в уравнении), и вам понадобится несколько меток, а не одна. 04.07.2019
  • попробую, спасибо за помощь 04.07.2019

Ответы:


1

Вам нужно будет установить ограничения на этикетке с помощью Auto-Layout. Это будет держать его в фиксированном положении на всех устройствах.

04.07.2019
  • Как насчет возвращаемого значения slider.value ..?? Посмотрите на изображение, над большим пальцем есть метка выше со строкой 11 км и метка 11 ниже большого пальца, я хочу, чтобы одинаковое значение было на всех экранах iphone. 04.07.2019
  • @PMour Это скользит вместе с большим пальцем? 05.07.2019
  • Я хочу динамически занять позицию trackRect и присвоить это значение в метках ползунка выше с ограничениями 05.07.2019
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..