UIScrollView изменить размер - PullRequest
       12

UIScrollView изменить размер

1 голос
/ 18 января 2012

У меня возникла проблема: я хочу заблокировать приложение в альбомной ориентации и отобразить картинку 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;
}

1 Ответ

0 голосов
/ 18 января 2012

Переопределите метод

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

вашей программы и верните NO, когда interfaceOrientation == UIInterfaceOrientationPortrait или любые другие ориентации, которые вы не хотите поддерживать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...