Проблема отображения контента в UIScrollview - PullRequest
0 голосов
/ 03 августа 2011

У меня есть скроллвью, и я хочу показать, предположим, 10 изображений. ширина рамки составляет 320 для iphone и 768 для ipad. что-то вроде этого изображения enter image description here

среднее изображение будет нашим текущим выбором (изображение горы согласно этому снимку). Теперь я хочу прокрутить влево или вправо, чтобы проверить все изображения. Если водопад находится в положении 1, гора в положении 2 и хижина в положении 3, когда я прокручиваю вправо, я хочу показать гору в положении 1 хата в положении 2 и новое изображение в положении 3.

PLZ подскажите как это сделать

Ответы [ 3 ]

0 голосов
/ 03 августа 2011

эй, используйте смещение содержимого.

и используйте этот код, чтобы получить то, что вы хотите.
это вид прокрутки для двух изображений одновременно, видимый на iPhone, и когда изображение прокручивается в середине iPhone, метка устанавливает метку среднего изображения ... при установке ширины 320 измените значение на 320

- (void) scrollViewDidScroll: (UIScrollView *) inscrollView {

p = scrollView.contentOffset;

NSLog(@"x = %f, y = %f", p.x, p.y);

[self loadDescLbl]; 
}  

- (Недействительными) loadDescLbl {

int point;
point = p.x+160;
    int i;
    i = point / 160;
    i = i-1;
if(i > fetArray.count-1){
        i = fetArray.count -1;
    }
if(i == -1)
{
    i = 0;
}
imageView[i].highlighted = YES;
    if([yourArray objectAtIndex:i] isEqualToString:@""]){
        priceLbl.text = @"";
    }
    else {
        priceLbl.text = [NSString stringWithFormat:@"%@", [yourArray objectAtIndex:i]];
    }   
    [scroll addSubview:priceLbl];

//}

}

просто установить точку = p.x и я = точка;

если у вас возникли проблемы, то скажите мне ...

0 голосов
/ 03 августа 2011

f все ваши изображения имеют одинаковый размер, вы можете добавить 2 кнопки (слева направо) ... и когда вы нажмете одну из них, измените рамку смещения контента шириной одного изображения ... если вам не нужны кнопки, вы можете получить тот же эффект с помощью UISwipeGestureRecognizer

-(IBAction)changeVisibleRect:(UIButton *)btn {

[UIView beginAnimation:@"animation name" context:nil];
[UIView setAnimationDuration:0.3];  //or how much you want in seconds

[scrollview.contentOffset setFrame:CGRectMake(pictureSize * i, 0, pictureSizeWidth, pictureSizeHeight)]; //i = the number of the picture 

[UIView commitAnimations];

}

CGRectMake (pictureSize * i, 0, pictureSizeWidth, pictureSizeHeight)] ... вместо pictureSize * i ... вы можете назначить теги левой или правой кнопки и ... сделать

if(btn.tag == 1) {
[UIView beginAnimation:@"animation name" context:nil];
[UIView setAnimationDuration:0.3];  //or how much you want in seconds

[scrollview.contentOffset setFrame:CGRectMake(scrollView.contentOffset.frame.origin.x - pictureSizeWidth, 0, pictureSizeWidth, pictureSizeHeight)]; //i = the number of the picture 

[UIView commitAnimations];
}

при условии, что ваша левая кнопка установила тег = 1;

для SwipeGesture это будет тот же анимационный код / ​​идея

0 голосов
/ 03 августа 2011

Вы должны отрегулировать и установить contentOffset из scrollView в зависимости от размера изображения.Вы также должны установить необходимые contentSize для scrollView, которые позволят прокрутку.

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