2015-12-03 5 views
0

Мне нужно сделать горизонтальную прокрутку из двух изображений. Я очень хорошо прорисовал прокрутку изображения, но не получаю за отображение нескольких изображений в scrollview. Я добавил код для одиночного прокрутки. Ниже прилагается изображение, которое мне нужно достичь. enter image description hereUIScrollView с несколькими изображениями по горизонтали

galleryScrollView = [UIScrollView new]; 
galleryScrollView.pagingEnabled = YES; 
galleryScrollView.backgroundColor = [UIColor clearColor]; 
galleryScrollView.translatesAutoresizingMaskIntoConstraints = NO; 
galleryScrollView.showsHorizontalScrollIndicator = NO; 
galleryScrollView.showsVerticalScrollIndicator = NO; 
galleryScrollView.delegate = self; 
galleryScrollView.scrollEnabled = YES; 
[backView addSubview:galleryScrollView]; 

for(int i=0;i<resultDict.count;i++) { 

    CGRect frame; 
    frame.origin.x= galleryScrollView.frame.size.width *i; 
    frame.origin.y=0; 
    frame.size=galleryScrollView.frame.size; 

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:frame]; 
    imageView.contentMode = UIViewContentModeScaleAspectFill; 
    imageView.translatesAutoresizingMaskIntoConstraints = YES; 
    imageView.clipsToBounds = YES; 

    NSString *imageString = [[resultDict valueForKey:@"ImageURL"] objectAtIndex:i]; 
    [imageView setImageWithURL:[NSURL URLWithString:imageString]]; 
    [galleryScrollView addSubview:imageView]; 
} 
galleryScrollView.contentSize=CGSizeMake(galleryScrollView.frame.size.width * resultDict.count, galleryScrollView.frame.size.height); 
+0

на экране u хотите показать одно изображение в разы? – ilesh

+0

Нет, я хочу показать 2 изображения на одном экране – Kashif

+0

, чем вам нужно добавить изображение между изображениями, это может помочь вам прокрутить изображения – ilesh

ответ

0

enter image description here

Как вы можете видеть выше, я взял два образца изображения цвет фона синий и серый. в виде прокрутки. и в кодировании части первой ФЛОТ переменной для текущей прокрутки X-позиции Scrollview «currScrollXPosition»

[self.scrollView setScrollEnabled:YES]; 
[self.scrollView setContentSize:CGSizeMake(self.scrollView.frame.size.width*4, self.scrollView.frame.size.height)]; 
[self.scrollView setPagingEnabled:YES]; 

currScrollPosition = 0; 

теперь вы просто должны дать действие на те кнопки для предыдущей кнопки

- (IBAction)prevBtnClicked:(id)sender { 

if(currScrollPosition > 0){ 
[self.scrollView setContentOffset:CGPointMake(currScrollPosition-self.scrollView.frame.size.width, self.scrollView.contentOffset.y) 
         animated:YES]; 
    currScrollPosition = currScrollPosition-self.scrollView.frame.size.width; 

}} 

и для следующей кнопки

- (IBAction)nextBtnClicked:(id)sender { 

if(currScrollPosition < self.scrollView.contentSize.width){ 
[self.scrollView setContentOffset:CGPointMake(currScrollPosition+self.scrollView.frame.size.width, self.scrollView.contentOffset.y) 
         animated:YES]; 
    currScrollPosition = currScrollPosition+self.scrollView.frame.size.width; 

}} 

наверняка это сработает для вас. Удачи

1

Проблема заключается в том, что вы хотите два изображения на одном экране, но кадр вы делаете для каждого изображения является размер экрана, а начало выключен. Для того, чтобы изменить происхождение заменить

frame.origin.x= galleryScrollView.frame.size.width *i; 

с

frame.origin.x= galleryScrollView.frame.size.width *i/2; 

Аналогично вам также нужно изменить frame.size.

+0

Я не вижу, чтобы вы установили рамку для вашего scrollview и ширины uiimageview некорректны: –

0

я не вижу, что вы установите рамку для Scrollview и шириной UIImageView не является правильным, он должен

frame.origin.x= galleryScrollView.frame.size.width/2 *i 

и

galleryScrollView.contentSize=CGSizeMake(galleryScrollView.frame.size.width/2 * resultDict.count, galleryScrollView.frame.size.height); 

Но, я думаю, что лучше, если вы используете UICollection для показа вашего продукта.

Смежные вопросы