UIScrollView调整大小



我遇到了一个问题,我想在横向中阻止应用程序并显示图片768*1024((横向中ipad的大小),但应用程序没有停留在横向+当它处于横向时,滚动视图是1024*1024,以上是我的UIScrollView中显示PNG的部分代码:

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;
}

覆盖程序的

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

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

最新更新