【发布时间】:2015-03-04 11:29:29
【问题描述】:
我有一个带有 UIPageViewController 的示例项目。在我的第一页(pageviewcontroller:类名-step1Controller)中有一个“继续”按钮。当我点击该按钮时,我需要滚动第一页并显示第二页(而不是在这里滑动点击按钮将更改页面)。
所以在按钮单击时我调用了自动滚动的方法,不幸的是它显示我的 uiscrollview 框架为零。??我该如何解决这个问题?请帮忙
我附上了项目的副本(它是一个 200kb 的小文件)
我的代码结构是这样的
ViewController (click on "add" button open second viewcontroller)-->MainController (here i have uiscrollview and uipageviewcontroller connected to 6 pages).
When i click "Continue" green button from first page it should auto scroll and sho the second page.
请帮忙。
Code on first page of pageview
- (IBAction)continueButton:(id)sender {
Controller=[[MainController alloc]init];
//calling viewcontroller method were we created scrollview
[Controller moveToNextPage:1];
}
in MainController
-(void)moveToNextPage:(int )page{
NSLog(@"%@",str);
self.pageControl.currentPage=2;
NSLog(@"frame: (%0f %0f; %0f %0f)",
self.scrollViewDrug.frame.origin.x, self.scrollViewDrug.frame.origin.y,
self.scrollViewDrug.frame.size.width, self.scrollViewDrug.frame.size.height);
CGRect newFrame=CGRectMake(320*page,self.scrollViewDrug.frame.origin.y,self.scrollViewDrug.frame.size.width, self.scrollViewDrug.frame.size.height);
[self.scrollViewDrug scrollRectToVisible:newFrame animated:YES];
}
代码链接
【问题讨论】:
-
如果您有 UIPageViewController,请使用它提供的方法:developer.apple.com/library/ios/documentation/UIKit/Reference/…:您在数组中添加新的 viewController 并将它们传递给此函数。而不是自己做scrollView的计算。如果您想继续使用 UIScrollView,请向我们展示您初始化 scrollView 以及设置框架的代码。
-
inside viewdidload .... scrollViewDrug=[[UIScrollView alloc]initWithFrame:CGRectMake(2,70,307,496)]; scrollViewDrug.showsVerticalScrollIndicator=YES; scrollViewDrug.scrollEnabled=YES; scrollViewDrug.userInteractionEnabled=YES;
-
只是一个建议:改变你的信息,只用 3 行来解释你想要什么,并添加更多代码以便我们更好地了解正在发生的事情,而不是发布链接并要求下载一些东西.也许您的信息将来可以帮助其他人。
-
我已经添加了整个项目,所以我想你可以理解
-
做你想做的。但是看看 SO 中的数千个问题,看看它是如何工作的。您在消息中添加代码,以便其他人可以从中受益。您不会看到有一千人下载您的链接。但是,如果您将代码放入消息中,他们可以回答,其他人将从中受益。但如果你不想,就不要这样做。
标签: ios objective-c uiscrollview uibutton