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 的大小