【问题标题】:UIScrollView resizeUIScrollView 调整大小
【发布时间】:2012-01-18 15:09:02
【问题描述】:

我遇到了一个问题,我想在横向阻止应用程序并显示图片 768*1024((横向 ipad 的大小)但应用程序不保持横向 + 滚动视图在 1024*1024 中时风景,上面用于显示 PNG 的 UIScrollView 的某些代码部分:

const CGFloat kScrollObjHeight  = 768.0;
const CGFloat kScrollObjWidth   = 1024.0;
const NSUInteger kNumImages     = 46;

- (void)layoutScrollImages
{
UIImageView *view = nil;
NSArray *subviews = [FirstScrollView subviews];

// reposition all image subviews in a horizontal serial fashion
CGFloat curXLoc = 0;
for (view in subviews)
{
    if ([view isKindOfClass:[UIImageView class]] && view.tag > 0)
    {
        CGRect frame = view.frame;
        frame.origin = CGPointMake(curXLoc, 0);
        view.frame = frame;

        curXLoc += (kScrollObjWidth);
    }
}

// set the content size so it can be scrollable
[FirstScrollView setContentSize:CGSizeMake((kNumImages * kScrollObjWidth), [FirstScrollView bounds].size.height)];
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [FirstScrollView setBackgroundColor:[UIColor blackColor]];
    [FirstScrollView setCanCancelContentTouches:NO];
    FirstScrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
    FirstScrollView.clipsToBounds = YES;        // default is NO, we want to restrict drawing within our scrollview
FirstScrollView.scrollEnabled = YES;

FirstScrollView.pagingEnabled = YES;
  //  FirstScrollView.frame = CGRectMake(0, 0, 1024, 768);

NSUInteger i;
for (i = 1; i <= kNumImages; i++)
{
    NSString *imageName = [NSString stringWithFormat:@"page%d.png", i];
    UIImage *image = [UIImage imageNamed:imageName];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

    CGRect rect = imageView.frame;
    rect.size.height = kScrollObjHeight;
    rect.size.width = kScrollObjWidth;
    imageView.frame = rect;
    imageView.tag = i;  
    [FirstScrollView addSubview:imageView];
    [imageView release];
}

[self layoutScrollImages];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
//return YES;
return interfaceOrientation == UIInterfaceOrientationLandscapeLeft;
}

【问题讨论】:

    标签: ipad ios5 uiscrollview png landscape


    【解决方案1】:

    覆盖你的程序的

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    

    方法,并在 interfaceOrientation == UIInterfaceOrientationPortrait 或您不想支持的任何其他方向时返回 NO。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      • 2018-07-12
      • 2017-03-14
      相关资源
      最近更新 更多