У меня есть UIScrollView
, который прокручивается только в вертикальном направлении, мне нужно разместить UIScrollView
, который может перемещаться горизонтально, например приложение AppStore в яблочных устройствах. Я не хочу нас UICollectionView
, так как у меня есть статические данные, и мне нужно всего 3 горизонтальных UIScrollView
Могу ли я установить UIScrollView внутри другого UIScrollView
ответ
Да, вы можете. Поскольку подклассы UIScrollView
UIView
будут вести себя так, как ожидалось, при добавлении subviews. Каждое представление прокрутки позволит прокручивать на основе его свойства contentSize
.
Objective-C:
UIScrollView *horizontalScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(40.0, 40.0, 300.0, 300.0)];
horizontalScrollView.backgroundColor = [UIColor lightGrayColor];
horizontalScrollView.contentSize = CGSizeMake(2000.0, 300.0);
[self.view addSubview:horizontalScrollView];
UIScrollView *verticalScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(40.0, 40.0, 220.0, 220.0)];
verticalScrollView.backgroundColor = [UIColor greenColor];
verticalScrollView.contentSize = CGSizeMake(220.0, 2000.0);
[horizontalScrollView addSubview:verticalScrollView];
Swift:
let horizontalScrollView = UIScrollView(frame: CGRectMake(40.0, 40.0, 300.0, 300.0))
horizontalScrollView.backgroundColor = UIColor.lightGrayColor()
horizontalScrollView.contentSize = CGSizeMake(2000.0, 300.0)
self.view.addSubview(horizontalScrollView)
let verticalScrollView = UIScrollView(frame: CGRectMake(40.0, 40.0, 220.0, 220.0))
verticalScrollView.backgroundColor = UIColor.greenColor()
verticalScrollView.contentSize = CGSizeMake(220.0, 2000.0)
horizontalScrollView.addSubview(verticalScrollView)
да это возможно, но вы должны поддерживать тег Scrollview для обработки методы делегата от просмотр прокрутки.
Да, вы можете. Но вам нужно различать виды прокрутки в методах делегатов прокрутки. Либо вы можете использовать тег или если вы объявляете их как глобальные переменные во всем классе, вы можете напрямую обращаться к ним с их names.Eg:
UIScrollView *parentScrollView = [[UIScrollView alloc] init];
parentScrollView.delegate = self;
[self.view addSubview:parentScrollView];
UIScrollView *childScrollView = [[UIScrollView alloc] init];
childScrollView.delegate = self;
[parentScrollView addSubview:childScrollView];
Теперь внутри делегатом метода вы можете проверить для вида прокрутки, как
if(scrollview == parentScrollview)
{
// do your actions
}
Это возможно, только если объекты просмотра прокрутки являются глобальными для класса. Вы также можете дать тег и проверить для тега прокрутки методы вида делегата, как
parentScrollView. tag = 101;
И спирального метод вида делегата
if(scrollview.tag = 101)
{
// do your actions
}
UIScrollView имеет свойство scrollEnabled
, которое вы можете установить на NO для отключения прокрутки в представлении родительского прокрутки.
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
if(scrollView == innerView)
outerView.scrollEnabled = NO;
else
outerView.scrollEnabled = YES;
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
if(scrollView == innerView)
{
if(innerView.contentOffset.x + innerView.frame.size.width == innerView.contentSize.width)
{
outerView.scrollEnabled = NO;
}
else
{
outerView.scrollEnabled = YES;
}
}
}
Или же вы можете пройти ниже link.
- 1. UIScrollView внутри UIScrollView внутри UIScrollView
- 2. UITextView в UIScrollView как внутри другого UIScrollView
- 3. UIScrollView внутри UIScrollView
- 4. UIScrollView внутри UIScrollView?
- 5. UIScrollView внутри paged UIScrollView
- 6. ScrollView внутри другого UIScrollView - делегат
- 7. Цель C: UIScrollView внутри UIScrollView
- 8. UIButton внутри UIScrollView внутри UIScrollView вид
- 9. Как я могу вложить UIScrollView внутри UIScrollView, чтобы пользователь мог прокручивать внутренний UIScrollView?
- 10. Как я могу пересмотреть subview внутри UIScrollView?
- 11. Как создать UIScrollview внутри Uiscrollview программно
- 12. Вложенные UIScrollView внутри UIScrollView Cocoa Touch
- 13. Остановите анимацию UIScrollView при прокрутке другого UIScrollView
- 14. Могу ли я использовать UIRefreshControl в UIScrollView?
- 15. MKMapView внутри UIScrollView
- 16. UIScrollView в UIScrollView
- 17. Загрузить ViewController внутри UIScrollView
- 18. UIScrollview внутри UIpageviewcontroller
- 19. Установить UILabel, который отображает HTML внутри UIScrollView
- 20. UIScrollView поверх UIScrollView
- 21. Многострочный UILabel внутри UIScrollView
- 22. Установить направление прокрутки UIScrollview
- 23. UIScrollView внутри CALayer
- 24. UICollectionView внутри UIScrollView
- 25. UITableView внутри UIScrollView
- 26. Использование UITouch внутри UIScrollView
- 27. прокрутите текст внутри UIScrollView
- 28. UIStackView внутри UIScrollView position
- 29. Вид чертежа внутри UIScrollView
- 30. UIButton внутри UIScrollView
вы можете подклассифицировать uiscrollview, чтобы дать ему свойства, такие как родительский ребенок, или просто дать теги, чтобы определить, что такое scrollview. –
Да, возможно. –