-1

当我从纵向模式切换到横向模式时,视图应该扩大,但长度应该相同并且在滚动视图中,这样当我滚动时应该显示完整内容:

if (([[UIDevice currentDevice]orientation] == UIInterfaceOrientationLandscapeLeft) ||
    ([[UIDevice currentDevice]orientation] == UIInterfaceOrientationLandscapeRight))
{
    UIScrollView *scrollView=[[UIScrollView alloc] init];
    UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 480, 480)];
    view1 = self.view;
    [scrollView addSubview:view1];
    scrollView.frame = CGRectMake(0, 0, 480, 480);
    scrollView.contentSize = CGSizeMake(480, 480);
    scrollView.delegate = self;
    scrollView.alwaysBounceVertical = YES;
    [self.view addSubview:scrollView];
}
4

2 回答 2

0

请用更多信息更新您的问题,例如 - 什么有效和无效?不要将更新添加为评论,编辑您的问题。

在您现有的代码中,至少这是错误/混淆的:

 UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 480, 480)];
 view1 = self.view;

您在第一行中分配一个指向新视图的指针,然后在第二行中将其重新分配给您现有的 self.view 。那么这里:

    [self.view addSubview:scrollView];

您正在将包含内容视图的滚动视图添加到同一内容视图。那是行不通的。

作为更清洁的解决方案,为什么不为两个方向设置滚动视图/子视图组合。然后当你旋转时,你只需要改变你的滚动视图的内容大小。

对于正常的直立方向:

            self.scrollview.contentSize = self.scrollview.bounds.size;

对于风景:

              self.scrollview.contentSize =
         CGSizeMake(self.scrollView.bounds.size.width, self.contentView.bounds.size.height 

(假设您的内容位于 scrollView 内的名为 contentView 的视图中)

您应该能够contentOffset使故事板中的两个方向都正常工作,但如果不能,您可以在代码中为每个方向设置它。

于 2013-01-29T15:47:20.547 回答
0
if(([[UIDevice currentDevice]orientation] == UIInterfaceOrientationLandscapeLeft) || ([[UIDevice currentDevice]orientation] == UIInterfaceOrientationLandscapeRight)) { 
UIScrollView * scrollView=[[UIScrollView alloc] init]; UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 480, 480)]; 
view1 = self.view; [scrollView addSubview:view1]; scrollView.frame = CGRectMake(0, 0, 480, 480);           
scrollView.contentSize = CGSizeMake(480, 480); scrollView.delegate = self; 
scrollView.alwaysBounceVertical = YES; [self.view addSubview:scrollView]; 
}
于 2014-09-15T06:21:08.543 回答