scrollview不会在第二个viewcontroller中滚动,而只会在第一个home viewcontroller中滚动

时间:2012-06-29 14:39:51

标签: objective-c ios

在我的应用程序中我有一个CameraAppViewController,从它导航到另一个视图控制器OverlayViewController并从它导航到另一个视图控制器ScrollerViewController。我想在scrollerviewcontroller上有一个uiscrollview,但它不会滚动。但是,当我在第一个CameraAppViewController上为uiscrollview添加相同的代码时,它会滚动。 我尝试了所有的技巧来改变滚动视图的内容大小与视图的框架相比,但没有任何效果。我认为代码是正确的,因为它在一个视图控制器上工作。我甚至试图把它放到另一个项目中,它对第一和第二个视图控制器起作用。我将不胜感激任何帮助。

我使用的代码如下:

UIImage *image1=[UIImage imageNamed:@"logo_idv0.jpg"];
UIImage *image2=[UIImage imageNamed:@"logo_idv1.jpg"];
UIImage *image3=[UIImage imageNamed:@"logo_idv2.jpg"];
NSMutableArray *allImages=[[NSMutableArray alloc] init];

[allImages addObject:image1];
[allImages addObject:image2];
[allImages addObject:image3];


self.view.backgroundColor = [UIColor redColor];
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];


scroll.pagingEnabled = YES;

scroll.scrollEnabled = YES;
scroll.clipsToBounds = YES;

NSInteger numberOfViews = 3;
for (int i = 0; i < numberOfViews; i++) {
    CGFloat yOrigin = i * self.view.frame.size.width;


    UIView *awesomeView = [[UIView alloc] initWithFrame:CGRectMake(yOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)];

    UIImageView *imageView=[[UIImageView alloc] initWithImage:[allImages objectAtIndex:i]];

    [awesomeView addSubview:imageView];

    awesomeView.backgroundColor = [UIColor colorWithRed:0.5/i green:0.5 blue:0.5 alpha:1];
    [scroll addSubview:awesomeView];

}

scroll.contentSize = CGSizeMake(self.view.frame.size.width * numberOfViews,self.view.frame.size。                                 高度+ 10);

[self.view addSubview:scroll];

1 个答案:

答案 0 :(得分:0)

首先在.h:

中执行此操作
@interface SecondViewController : UIViewController <UIScrollViewDelegate>

然后在.m:

中执行此操作
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0,self.view.frame.size.width, self.view.frame.size.height)];

self.scroll.delegate = self;