1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/bense_319-CustomScrollMenu

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Написал первый вариант scrollMenu, используя Swift!

Основные возможности:

  1. Реализован скроллинг нескольких view controllers внутри scroll view.
  2. Оптимизация использования памяти в scroll view.
  3. Создана возможность изменения размера шрифта вместе с прокруткой, как в мобильной версии NetEase.
  4. Добавлено подчеркивание пунктов меню, которое можно отключить через свойства.
  5. Внутренняя реализация автоматического расположения элементов с использованием frame, что позволяет корректно располагаться на различных экранах и поддерживать горизонтальное и вертикальное положение устройства.
  6. Возможность просто перетянуть библиотеку в проект и использовать её.

Пример работы

Пример работы

Как использовать этот компонент?

  1. Создайте файл viewController.swift.
  2. Создайте экземпляры ваших подчинённых view controllers и заголовков, затем добавьте их в массив. (В моём демо я создал семь view controllers)
  3. Установите frame.
  4. Установите опции.
  5. Создайте экземпляр QBMenuMainController.
  6. Добавьте экземпляр QBMenuMainController в ваш созданный view controller.

Код примера

override func viewDidLoad() {
    super.viewDidLoad()
    
    // Создание экземпляров подчинённых view controllers и установка заголовков
    let firstVC = QBFirstViewController()
    let secondVC = QBSecondViewController()
    let thirdVC = QBThirdViewController()
    let fourthVC = QBFourthViewController()
    let fifthVC = QBFiveViewController()
    let sixthVC = QBSixViewController()
    let seventhVC = QBSevenViewController()
``````swift
    firstVC.title = "Рекомендации"
    secondVC.title = "Новости"
    thirdVC.title = "Научные достижения"
    fourthVC.title = "Персоны"
    fifthVC.title = "История"
    sixthVC.title = "Война"
    seventhVC.title = "Общество"

    // Добавление в массив
    let controllersArray = [firstVC, secondVC, thirdVC, fourthVC, fifthVC, sixthVC, seventhVC]

    // Установка опций
    let options: [QBPageMenuOptions] =
        [.menuViewHeight(44),
         .menuViewBackgroundColor(UIColor.white),
         .menuItemFont(UIFont.systemFont(ofSize: 19)),
         .menuItemNormalColor(UIColor.black),
         .menuItemSpace(15.0),
         .menuItemDefaultIndex(0),
         .menuIsSelectionIndicator(false),
         .menuIsRightButton(false)]

    // Устанавливаем frame
    let rect = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)

    // Создаем экземпляр QBMenuMainController
    let menuMainVC: QBMenuMainController
        = QBMenuMainController(viewControllers: controllersArray,
                                frame: rect,
                                pageMenuOptions: options)

    // Добавляем в свой ViewController
    self.addChild(menuMainVC)
    self.view.addSubview(menuMainVC.view)
    menuMainVC.didMove(toParent: self)
}

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
GPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/bense_319-CustomScrollMenu.git
git@gitlife.ru:oschina-mirror/bense_319-CustomScrollMenu.git
oschina-mirror
bense_319-CustomScrollMenu
bense_319-CustomScrollMenu
master