Создание горизонтальной панели бесконечного прокрутки в iOS

Я заинтересован в создании строки меню следующим образом:

Menu Bar Example

Из того, что я читал, я должен делать UIScrollView. Есть ли примеры онлайн, которые делают это с бесконечной прокруткой (обертывание вокруг строки меню) и возможностью иметь сенсорный контроль? (т.е. проведите по экрану и измените строку меню).

Спасибо!

Ответы

Ответ 1

Ваш запрос очень похож на мой. Но я тоже не могу найти достаточно хорошее решение. Поэтому я решил создать что-то, чтобы сделать это сам.

ACTabScrollView поддерживает несколько разных жестов. И tabs и pages будут всегда прокручиваться синхронно.

  • Swipe обычно
  • Drag вкладки могут быстро перемещать страницы
  • Click вкладку для перехода на эту страницу

demo1demo2demo3

Функция Infinite Scrolling еще не готова, но я продолжу ее реализацию.

Я использую аналогичный интерфейс как примеры в этом проекте. Я не знаю, что такое приложение, но если использовать его в качестве примера, беспокоить любого. Свяжитесь со мной, и я немедленно удалю это.

Не стесняйтесь давать мне какое-либо предложение по его улучшению:)

Ответ 2

Я надеюсь, что этот код будет работать для вас.

- (void)viewDidLoad
{
 [super viewDidLoad];
 [self createHorizontalScroll];
}

- (void)createHorizontalScroll
{
   UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 80, self.view.frame.size.width, 80)];

   int buttonX = 0;
   for (int i = 0; i < 5; i++)
   {
     UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(buttonX, 0, 100, 60)];
    [button setTitle:[NSString stringWithFormat:@"Button %d", i] forState:UIControlStateNormal];
    [scrollView addSubview:button];
    buttonX = buttonX+button.frame.size.width;
    [button addTarget:self
               action:@selector(changeView:)
     forControlEvents:UIControlEventTouchUpInside];

   }

scrollView.contentSize = CGSizeMake(buttonX, scrollView.frame.size.height);
scrollView.backgroundColor = [UIColor greenColor];
[self.view addSubview:scrollView];

}

 -(void)changeView:(UIButton*)sender
 {
   NSLog(@"I Clicked a button %ld",(long)sender.tag);
 }

Вы можете установить содержание прокрутки столько, сколько хотите, и кнопки меню. Измените вид в соответствии с нажатием кнопки. Здесь снимок экрана приведенного выше кода

enter image description here

Ответ 3

Надеюсь, это может вам помочь. Это не имеет больше анимации, но работает так, как вы ожидали.

Вы можете использовать CollectionView в этом, чтобы прокручивать по горизонтали с помощью опций меню в качестве CollectionView Cell. Для достижения левого и правого прокрутки мы можем использовать UISwapeGuestureRecognizers и прокручивать страницы.

Вот как я реализовал его, используя CollectionView для ScrollableMenu, как вкладки в верхней части экрана и Страницы в нижней части меню, используя Container View.

Вы можете загрузить этот проект и проверить, есть ли представление о форме реализации ниже ссылки.

Горизонтальное прокручиваемое меню

Надеюсь, это может вам помочь. Это реализовано со словами: Swift 4.0 и X-Code 9.2

Счастливое кодирование.