1

我的应用程序有问题,非常感谢任何帮助!

问题描述:使用下面给出的代码片段构建应用程序时,用户可以滚动两页,但只有一页显示图像。我的期望是两个页面都显示图像。

应用程序布局:该应用程序仅针对横向模式的 iPad 。

我的应用程序使用 UIScrollView 在两个不同的视图控制器之间滚动。每个视图控制器都在其视图中嵌入了一个 UIImageView。UIImageView 的图像是通过 IB 设置的。图像的尺寸为 1024x768 像素。

视图控制器使用故事板接口在代码中实例化。将 UIScrollView 嵌入其视图中的主视图控制器使用以下代码来实例化和添加包含图像的视图控制器。

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Keep the VCs around
    self.viewControllers = [NSMutableArray array];

    [self.scrollView setContentSize:CGSizeMake(0, 1024)];

    UIStoryboard *storyboard = self.storyboard;

    SinglePageViewController *vcOne = [storyboard instantiateViewControllerWithIdentifier:@"SimpleImageView"];
    [self addViewControllerToScrollView:vcOne];
    [vcOne setViewPositionToHorizontalPage:0];

    SinglePageViewController *vcTwo = [storyboard instantiateViewControllerWithIdentifier:@"SimpleImageView"];
    [self addViewControllerToScrollView:vcTwo];
    [vcTwo setViewPositionToHorizontalPage:1];
}

- (void)addViewControllerToScrollView:(UIViewController *)viewController
{
    CGSize contentSize = self.scrollView.contentSize;
    contentSize.width = contentSize.width + 768;
    [self.scrollView setContentSize:contentSize];
    [self.scrollView addSubview:viewController.view];
    [self.viewControllers addObject:viewController];
}

SinglePageViewController 类的 setViewPositionToHorizo​​ntalPage 方法如下所示:

- (void)setViewPositionToHorizontalPage:(NSUInteger)pageIndex
{
    self.view.frame = CGRectMake(768 * pageIndex, 0, 768, 1024);
}

当我使用透明图像时,我可以看到两个视图似乎都位于同一位置。当我记录他们的帧时,他们似乎都有正确的值(0,0,768,1024)和(768,0,768,1024)。

再次感谢你的帮助!

4

0 回答 0