Можем ли мы изменить поведение UIScrollView, чтобы он прокручивал RTL-контент в обратном режиме.Направление UIScrollView RTL для языков справа налево
ответ
count = 6;
[self.scrollView setFrame:CGRectMake(scrollView.frame.origin.x, scrollView.frame.origin.y, 320, 480)];
[pageControl setNumberOfPages:count];
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * count, self.scrollView.frame.size.height);
for(int i=count-1; i>=0; i--) { //start adding content in reverse mode
CGRect frame;
frame.origin.x = self.scrollView.frame.size.width * (count - i - 1); //ar
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
UIImageView *imageView = [[UIImageView alloc] initWithFrame:frame];
[imageView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%i.png", i]]];
[self.scrollView addSubview:imageView];
}
//scroll to the last frame as it's the first page for RTL languages
CGRect frame;
frame.origin.x = scrollView.frame.size.width * (count - 1);
frame.origin.y = 0;
frame.size = scrollView.frame.size;
[self.scrollView scrollRectToVisible:frame animated:NO];
Контроль страницы также должен быть указать последнюю точку в качестве первой точки (или первой странице)
- (void)scrollViewDidScroll:(UIScrollView *)sender {
// Update the page when more than 50% of the previous/next page is visible
CGFloat pageWidth = self.scrollView.frame.size.width;
int page = floor((self.scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1;
self.pageControl.currentPage = (page % count);
}
Что меня больше волнует сейчас, если яблоко поймет и одобрит обратное поведение UIScrollView и PageControl, хотя это вполне логично и понятно для права на левый язык (арабский, иврит) говорящих парней. –
Ты моя спасательная жизнь –
Я не уверен, если я понимаю вопрос правильно, но я понимаю, как это : Вы хотите иметь (скажем) горизонтальный UIScrollView, где вы можете добавлять элементы справа налево, и когда содержимое превышает рамку просмотра прокрутки, которую вы хотите прокрутить влево, а не вправо, чтобы увидеть последние элементы.
В этом случае вы можете это сделать. Для каждого нового элемента вычислить общую ширину вам нужно, и установить его в качестве contentOffset:
[scrollView setContentSize:CGSizeMake(self.childView.frame.size.width,
scrollView.frame.size.height)];
Выше я есть childView, где добавляются элементы. Он расположен в самом правом положении внутри ширины элемента scrollView минус 1. Каждый раз, когда добавляется элемент, звоните:
[scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x + kElementWidth,0.0)];
, который компенсирует все слева. Тогда:
self.videoQueueCollectionView.center = CGPointMake(self.childView.center.x + kElementWidth,
self.childView.center.y);
Это будет хватать Eveything туда, где это было, но с contentOffset установлен слева. Это означает, что теперь вы можете прокручивать направо.
Вы можете достичь этого, повернув UIScrollView
в детском виде на 180 (Pi).
self.scrollView.transform = CGAffineTransformMakeRotation(M_PI);
subView.transform = CGAffineTransformMakeRotation(M_PI);
Я не поклонник решения, но после слишком много часов, пытаясь решить эту проблему, это фактически решило ее. +1 – NikMos
Это хорошее решение, если вам не требуется прокрутка: в этом случае он будет наверху. – Maria
Быстрый эквивалент: scrollView.transform = CGAffineTransform (rotationAngle: CGFloat (Double.pi)); subview.transform = CGAffineTransform (rotationAngle: CGFloat (Double.pi)); – Groot
Я пробовал его для xCode 7 и iOS 9 работает хорошо.
[self._imagesScrollView setTransform:CGAffineTransformMakeScale(-1, 1)];
это решение переворачивает все, включая текст в обратном порядке, если метки находятся в режиме прокрутки. Решение kumarPv прекрасно работает, чтобы исправить это. – greenhouse
Несомненно, это правда, он просто используется с изображениями. –
- 1. Расширение клавиатуры - Направление текста справа налево (RTL)
- 2. Установить направление qTip2 справа налево (RTL)
- 3. Разработка Moodle для поддержки языков RTL (справа налево)
- 4. Инструменты НЛП для языков справа налево?
- 5. Изменить направление UITableView справа налево
- 6. Невозможно установить направление текста для языков справа налево
- 7. Как использовать jqueryui для языков справа налево
- 8. Поддержка RTL для UIScrollView
- 9. Как установить направление текста в WebView в RTL (справа налево)?
- 10. Установка UITableView и раздел/направление выравнивания быть RTL (справа налево)
- 11. Что означает RTL (справа налево)?
- 12. изменить направление действия стрелки справа налево
- 13. Направление текста справа налево в cleditor
- 14. jstree поддержка языков справа налево не работает
- 15. Изменить направление текста клидера справа налево?
- 16. Flexbox колонны направление справа налево
- 17. Отключить RTL-направление для UICollectionView
- 18. Элемент направление переполнения справа налево проблемы
- 19. Пользовательское текстовое поле для языков справа налево
- 20. Скользящая компоновка вкладок для языков справа налево
- 21. блокировка UIScrollView справа налево прокрутка
- 22. Поддержка YUI языков rtl
- 23. Порядок страниц для языков справа налево (арабский, иврит)
- 24. Android Рисование Прямоугольник справа налево (rtl)
- 25. ITextPdf: Печать арабских строк справа налево (RTL)
- 26. Установить ориентацию справа налево для NSButtonCell
- 27. Установить JMenu направление RTL
- 28. нужно TabBarController быть справа налево RTL
- 29. UICollectionView RTL направление
- 30. Изменение налево налево RTL программно
Что вы имеете в виду? Прокрутка просмотров прокрутить оба пути в любом случае! – jrtc27
просто идея, я должен начать размещать контент (используя addSubViews) внутри UIViewScroller с отрицательной стороны (по оси x), чтобы начать с –
, попробуйте следовать этой ссылке https://medium.com/if-let-swift -programming/working-with-localization-in-swift-4a87f0d393a4 – Johnykutty