containerView 内的滚动视图不会滚动?

Posted

技术标签:

【中文标题】containerView 内的滚动视图不会滚动?【英文标题】:Scrollview inside containerView won't scroll? 【发布时间】:2010-02-20 11:55:12 【问题描述】:

我有一个 UITableViewController 子类,它有一个容器 UIView,它有 2 个子视图中的 1 个:tableview 或 UIScroll,具体取决于视图是否“翻转”。

我的 viewDidLoad() 方法将 tableview 添加到容器中:

[kContainerView addSubview: self.tableView];
self.view = kContainerView;

并使用 900x600 图像初始化 UIScrollview 并将自身设置为委托:

kSBCanvasScrollView = [[UIScrollView alloc] initWithFrame:bounds];  
[kSBCanvasScrollView setDelegate: self];
kSBImage = [[UIImageView alloc] initWithImage:img];
[kSBCanvasScrollView addSubview:kSBImage];
[kSBCanvasScrollView setContentSize:[img size]];    
[kSBCanvasScrollView setMinimumZoomScale:0.5];

视图的前“表侧”工作正常。然后,当用户通过执行以下操作选择工具栏上的按钮时,我会翻转视图:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2.0f];
[UIView setAnimationDelegate:self];

if (kSBCanvasIsVisible==NO) 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:kContainerView cache:YES];
    [self.tableView removeFromSuperview];
    [kContainerView addSubview:kSBCanvasScrollView];
    kSBCanvasIsVisible = YES;
 else 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:kContainerView cache:YES];
    [kSBCanvasScrollView removeFromSuperview];
    [kContainerView addSubview:self.tableView];
    kSBCanvasIsVisible = NO;

[UIView commitAnimations];

它像我想要的那样翻转,但 kSBCanvasScrollView 不滚动。捏合手势有效。为什么视图不会滚动?也许这与这是一个 TableViewController 的事实有关?

【问题讨论】:

我相信要让滚动视图正常工作,它的框架尺寸必须大于 iphone 屏幕。它看起来不像你在这里设置帧大小。如果你愿意,我可以从我的应用中发布一些代码。 实际上为了让scrollView能够滚动,它的框架比它的内容要小。 OP,你用什么做边界,你能确定它比 [img size] 大吗? 【参考方案1】:

您的滚动视图是 320 x 460 吗?我必须使滚动视图与 iphone 屏幕相同或小于它才能工作(在 IB 中但不一定在

[kSBCanvasScrollView setContentSize:[img size];).

你写了吗:

[kSBCanvasScrollView setScrollEnabled:YES];

PS:我确实试过这个。它对我有用...

【讨论】:

以上是关于containerView 内的滚动视图不会滚动?的主要内容,如果未能解决你的问题,请参考以下文章

子 ViewController 调整 containerView 的大小

ContainerView Inside ScrollView 不要在 Swift 3 中滚动

IOS中水平滚动视图问题内的滑块

Objective c - 表格视图内的按钮防止表格滚动

滚动视图内的文本视图,但它不在键盘顶部

UIScrollView 内的 UIWebView 并滚动到 Web 视图中的选定字段