调整 UIScrollView 的大小
Posted
技术标签:
【中文标题】调整 UIScrollView 的大小【英文标题】:Resize UIScrollView 【发布时间】:2011-08-30 20:54:16 【问题描述】:我正在创建一个应用程序,例如来自苹果的“PageControl”。 每个页面都有一个滚动视图,其中包含另一个滚动视图。
UIScrollView * scrollForPage = [[UIScrollView alloc]init];
scrollForPage.pagingEnabled = NO;
scrollForPage.contentSize = CGSizeMake(mainScroll.frame.size.width, 200 + mainScroll.frame.size.height+150);
scrollForPage.autoresizingMask = ( UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
scrollForPage.clipsToBounds = YES;
CGRect frame = mainScroll.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
CGRect frame2 = frame;
frame2.origin.x = 0;
frame2.origin.y = 0;
controller.view.frame = frame2;
scrollForPage.frame = frame;
[scrollForPage addSubview:controller.view];
[mainScroll addSubview:scrollForPage];
[scrollForPage release];
但是我的控制器的视图有一个动态大小,我怎样才能调整“scrollForPage”的大小以具有相同的大小??
谢谢
【问题讨论】:
我有一个疑问:“控制器”到底是什么?是视图控制器吗?父 ScrollView? 它是ViewController,主scrollView的view foreach“页面” 你到底想达到什么目的?您将 pagingEnabled 设置为 NO,但您指的是页面。即使滚动视图内容中的视图大小可能具有动态大小,滚动视图的大小也应保持不变,因此可能会迫使您更改滚动视图内容的大小。那么它到底是什么? 分页启用为YES,仅针对主Scrollview,其中scrollForPage为NO。我的 scrollForPage 大小始终相同。 【参考方案1】:检测视图大小的代码如下:
CGRect screenSize = [[UIScreen mainScreen] bounds];
只要让scroll view的frame等于screenSize,经常调用上面这行代码即可。
【讨论】:
它不工作,具有相同的行为.. 我做了这个改变: (code) CGRect screenSize = [[UIScreen mainScreen] bounds]; screenSize.origin.x=frame.origin.x = frame.size.width * page; scrollForPage.frame = screenSize; (代码)以上是关于调整 UIScrollView 的大小的主要内容,如果未能解决你的问题,请参考以下文章
调整容器 uiscrollview 中所有 uiscrollview 的大小