Как изменить изображение на UIScrollView - PullRequest
0 голосов
/ 23 марта 2012

У меня есть вид прокрутки с несколькими изображениями.Изображения прокручиваются.

Я использую следующий код:

scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

scrollView.pagingEnabled = YES;

scrollView.delegate = self;

scrollView.showsVerticalScrollIndicator = NO;

scrollView.showsHorizontalScrollIndicator = NO;


NSInteger numberOfViews = [arrayImage count];

for (int i = 0; i < numberOfViews; i++)
{
    CGFloat yOrigin = i * scrollView.frame.size.width;
    imageView = [[UIImageView alloc]initWithFrame:CGRectMake(yOrigin  +30, 0, self.view.frame.size.width-60 , self.view.frame.size.height)];
    imageView.image = [UIImage imageNamed:[arrayImage objectAtIndex:i]];
    [scrollView addSubview:imageView];
    [imageView release];
}
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * numberOfViews,0);
[self.view addSubview:scrollView];
[scrollView release]

Приложение будет работать с ориентацией iPad, но изображения не прокручиваются должным образом в альбомном режиме.

Отлично работает в портретном режиме, но изображения объединяются в ландшафтном режиме.

Если у кого-то есть идеи, поделитесь, пожалуйста ....

Ответы [ 2 ]

1 голос
/ 23 марта 2012

Попробуйте это ...

scrollView.delegate = self;
scrollView.scrollEnabled = YES;

int scrollWidth = 120;
scrollView.contentSize = CGSizeMake(scrollWidth,80);     


int xOffset = 0;
imageView.image = [UIImage imageNamed:[imagesName objectAtIndex:0]];

for(int index=0; index < [imagesName count]; index++)
{       
    UIImageView *img = [[UIImageView alloc] init];
    img.bounds = CGRectMake(10, 10, 50, 50);
    img.frame = CGRectMake(5+xOffset, 0, 50, 50);
    NSLog(@"image: %@",[imagesName objectAtIndex:index]);
    img.image = [UIImage imageNamed:[imagesName objectAtIndex:index]];
    [images insertObject:img atIndex:index];         
    scrollView.contentSize = CGSizeMake(scrollWidth+xOffset,110); 
    [scrollView addSubview:[images objectAtIndex:index]];

    xOffset += 70;
}

Установить это ...

imagesName = [[NSArray alloc]initWithObjects:@"image1.jpg",@"image2.jpg",@"image3.jpg",@"image4.jpg",@"image5.jpg",@"image6.png",@"image7.png",@"image9.png",nil];
images = [[NSMutableArray alloc]init];
0 голосов
/ 23 марта 2012

Для этой цели необходимо устанавливать рамку изображения каждый раз, когда изменяется ориентация интерфейса, или вам необходимо заново перерисовывать изображения после изменения ориентации

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