UiPickerView с настраиваемой фиксированной меткой и автоматическим размещением

Лука

Мне нужно реализовать, UIPickerViewчтобы выбрать часы, минуты и секунды. Мне нужно иметь ярлык рядом с каждым компонентом, который остается фиксированным при вращении сборщика. Например, вы можете посмотреть раздел таймера в приложении Apple Clock. Ставлю изображение для справки

введите описание изображения здесь

Конечно, мне нужен сборщик с 3-мя компонентами, но проблема та же. Я нашел много решений, чтобы добавить метку в качестве подпредставления и расположить ее с помощью некоторых фреймов и ручной настройки, но не могу заставить ее работать с AutoLayout, и я не нашел решения в Интернете. Кто-нибудь решил эту проблему? Спасибо

Trdavidson

Я столкнулся с аналогичной проблемой в приложении, над которым работал, и решил следующее:

я. Создайте UIPicker

II. Найдите середину представленных строк Picker.

iii. Добавьте две метки UILabel на экран и (void)layoutSubview;убедитесь, что метки всегда располагаются рядом с серединами.

В моем проекте мне нужна была только поддержка портретного режима, но она должна работать и в альбомной. Просто выберите достаточно широкую ширину строки, чтобы данные внутри средства выбора не перекрывались. Вот фрагмент кода для UIPicker:

#pragma mark - Picker View

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 2;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    if(component == 0) {
        return self.hourPickerData.count;
    } else {
        return self.minutePickerData.count;
    }
}

- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component {
    return 40;
}

- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component
{
    return 30;
}

-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
    NSString *text;

    if(component == 0) {
        text = self.hourPickerData[row];
    } else {
        text = self.minutePickerData[row];
    }

    UILabel *label = (UILabel*)view;
    if(view == nil) {
        label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 40, 30)];
        label.backgroundColor = [UIColor clearColor];
        label.text = text;
        label.textAlignment = NSTextAlignmentCenter;
        label.textColor = LYTiT_HEADER_COLOR;
        label.font = [UIFont fontWithName:LT_HELVETICA size:16];
    }

    return label;
} 

Эта статья взята из Интернета, укажите источник при перепечатке.

Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.

Отредактировано в
0

я говорю два предложения

0обзор
Войти в системуУчаствуйте в комментариях

Статьи по теме

UIPickerView получить выбранное значение без источника данных

UIPickerView показывает только две серые линии

Как сделать UIPickerView с кнопкой Готово?

Как установить значение по умолчанию для UIPickerView

Как мне настроить второй компонент с UIPickerView

быстрое изменение высоты uipickerview не работает

Как добавить панель инструментов с кнопкой готово в UIPickerView?

Назначение выходного значения, отличного от того, что показано в UIPickerView

UiPickerView не отображает значение

UIPickerView: выберите один элемент после того, как другой завершит анимацию

Выбор первой строки в проблеме UIPickerView

Модальное окно UIPickerView с уже видимой панелью инструментов

Делегат UIPickerView вызывается бесконечное количество раз

UIPickerView неправильно отображает изображения

UIpickerView не работает с номером строки параметра

Перезагрузить данные и компоненты в UIPickerView

Ошибка «Не удалось получить обновленный снимок» при тестировании пользовательского интерфейса с помощью UIPickerView

Масштаб текста UIPickerView недостаточно

Странная графическая проблема с UIPickerView

Показывать UIPickerView при касании жестом

Как убрать разрыв между компонентами UIPickerView разного цвета фона

Заполните UIPickerView элементами из класса

Показывать UIPickerView при нажатии на ярлык

Быстрый запуск нескольких компонентов UIPickerView

Относитесь к UIPickerView как к полю со списком / выбора

Как не отображать данные в первом компоненте UIPickerView до начала определенной строки во втором компоненте?

Изменить выделенный текст UiPickerView на основе строки

Проблема с персонализированной клавиатурой с UIPickerView

UIPickerView не отображает данные из массива

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    Резервное копирование / восстановление kafka и zookeeper

  3. 3

    Редактировать существующий файл Excel C # npoi

  4. 4

    Ipython использует% store magic для получения динамического имени

  5. 5

    Как получить список индексов всех значений NaN в массиве numpy?

  6. 6

    Почему бы не выдать ошибку ERROR в тесте Jasmine?

  7. 7

    Дженерики и потоки Java

  8. 8

    Как отфильтровать несколько столбцов в Qtableview?

  9. 9

    Как добавить Swagger в веб-API с поддержкой OData, работающий на ASP.NET Core 3.1

  10. 10

    Как изменить значок приложения для проекта libgdx android

  11. 11

    Thymeleaf не отображает значения в проекте Spring Boot

  12. 12

    Unity Проверить, включен ли Toggle

  13. 13

    Airflow не распознает мои настройки подключения S3

  14. 14

    Flutter: Unhandled Exception: FileSystemException: Creation failed, path = 'Directory: '' (OS Error: Read-only file system, errno = 30)

  15. 15

    Bogue étrange datetime.utcnow()

  16. 16

    На графике Matplotlib не отображается легенда

  17. 17

    Создание X509Certificate2 из ECC X509Certificate выдает исключение System.NotSupportedException в C #

  18. 18

    Как добавить фреймворк в файл в папке «Источники» Xcode Playground?

  19. 19

    Выполнение команд PowerShell в программе Java

  20. 20

    Статус HTTP 403 - ожидаемый токен CSRF не найден

  21. 21

    Инструмент для вставки данных, собранных в электронной таблице, в документ Word или PDF

популярныйтег

файл