1

Привет в моем приложении Я хочу показать текст ярлыка, отличный от каждого изображения в UIScrollView. Вот мой код.Как изменить текст метки в UIScrollview для каждой страницы Разный текст?

for (int i=0; i<imageArray.count; i++) 
{ 
    NSString *str = [imageArray objectAtIndex:i]; 
    NSString *bannerImageURL = [NSString stringWithFormat:@"http://url.com", str]; 
    CGFloat myOrigin = i * self.view.frame.size.width; 

UIImageView *myImageView = [[UIImageView alloc] initWithFrame:CGRectMake(myOrigin, 0, self.view.frame.size.width,imgScrollView.frame.size.height)]; 
    myImageView.contentMode = UIViewContentModeScaleToFill; 
    myImageView.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:bannerImageURL]]]; 
imgScrollView.contentSize = CGSizeMake(self.view.frame.size.width * imageArray.count,          self.view.frame.size.height); 

CGPoint scrollPoint = CGPointMake(0, 0); 
[imgScrollView setContentOffset:scrollPoint animated:YES]; 
imgScrollView.delegate = self; 
[imgScrollView addSubview:myImageView]; 
} 

Вот мои методы делегата.

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    [imgScrollView setContentOffset: CGPointMake(imgScrollView.contentOffset.x,0)]; 
} 
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
{ 
CGFloat pageWidth = scrollView.frame.size.width; 
int page = floor((scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1; 
NSLog(@"Scrolling - You are now on page %i",page); 
} 

Я хочу передать массив на эту метку и еще одну вещь, как добавить к этому коду контроллер страницы? Пожалуйста, помогите.

ответ

0

Я не совсем уверен, на какой этикетке вы ссылаетесь в вышеуказанном вопросе. Я предполагаю, что у вас есть метка UILabel * _label и массив NSArray * _namesArray, определенный в вашем заголовке.

Я пытался немного очистить свой код. Попробуйте это:

for(int index = 0; index < [imageArray count]; index++){ 
    NSString * string = [imageArray objectAtIndex:index]; 
    NSString * bannerImageURL = [NSString stringWithFormat:@"http://url.com/%@", string]; // You weren't using the string in your formatter, so I added it to the end. 
    CGFloat myOrigin = index * self.view.frame.size.width; 

    UIImageView * myImageView = [[UIImageView alloc] initWithFrame:CGRectMake(myOrigin, 0.0f, self.view.frame.size.width, imageScrollView.frame.size.height)]; 
    myImageView.contentMode = UIViewContentModeScaleToFill; 
    myImageView.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:bannerImageURL]]]; 
    [imageScrollView addSubview:myImageView]; 
} 
imageScrollView.contentSize = CGSizeMake(self.view.frame.size.width * imageArray.count,          self.view.frame.size.height); 
[imageScrollView setContentOffset:CGPointZero animated:YES]; 
imageScrollView.delegate = self; 

Тогда для методов делегата, вы хотите попробовать:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView; { 
    CGFloat pageWidth = scrollView.frame.size.width; 
    int page = floor((scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1; 
    _label.text = [_namesArray objectAtIndex:page]; 
    NSLog(@"Scrolling - You are now on page %i, and the name for the label is: %@", page, [_namesArray objectAtIndex:page]); 
} 

Надежда, что помогает!

+0

tanx для ответа u r. я попытаюсь сообщить и –

+0

Я пытался, но не работал. –

+0

Что не работает? Я сделал редактирование, чтобы убедиться, что вы правильно читаете имя во время прокрутки. Кроме того, убедитесь, что ваш 'IBOutlet' подключен правильно. – msgambel