Как получить "front" uiimageview из uiscrollviews? - PullRequest
1 голос
/ 24 мая 2011

Я видел этот вопрос в других местах ... но нет правильных ответов ...

У меня есть UIScrollView, который прокручивается по горизонтали.У меня есть 3 фотографии ... то есть: подпредставления UIScrollView содержат UIImageViews, как показано ниже: (в этом случае все подпредставления UIScrollView показывают path_to_file.png ... для простоты задания этого вопроса)

NSString *filepath = @"path_to_file.png";
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0,self.view.frame.size.width, self.view.frame.size.height)];
scroll.delegate = self;
scroll.pagingEnabled = YES;
NSInteger numberOfViews = 3;
int maxImageWidth = 0;
for (int i = 0; i < numberOfViews; i++)  
{
    CGFloat yOrigin = i * self.view.frame.size.width;
    UIImage *imgWord = [[UIImage alloc] initWithContentsOfFile:filePath];
    UIImageView *imgWordView = [[UIImageView alloc] initWithImage:imgWord];
    [imgWord release];
    imgWordView.center = CGPointMake ((cell.contentView.frame.size.width/2) + yOrigin,imgWord.size.height/2);
    if (cell.contentView.frame.size.width > maxImageWidth)  {
    maxImageWidth = cell.contentView.frame.size.width;
    }
    [scroll addSubview:imgWordView];
    [imgWordView release];
}
scroll.contentSize = CGSizeMake(self.view.frame.size.width * numberOfViews, self.view.frame.size.height);
[cell.contentView addSubview:scroll]; 
[scroll release];

Имея приведенный выше фрагмент кода, я сталкиваюсь с тем, что мне нужно:

-(UIView *) viewForZoomingInScrollView:(UIScrollView *)scrollView {
    return image;
}

, чтобы увеличить мой UIImageView в UIScrollView.Как мне узнать, какой UIImageView показывает в UIScrollview, чтобы я мог, в свою очередь, получить доступ к этому UIImageView для получения UIImage, чтобы вернуть его в viewForZoomingInScrollView?

Пожалуйста, объясните это какЯ не понимаю, как нам самим отслеживать «отображаемое» подпредставление…

Спасибо!

Ответы [ 3 ]

1 голос
/ 24 мая 2011

Как мне узнать, какой UIImageView отображается в UIScrollview, чтобы я, в свою очередь, мог получить доступ к этому UIImageView, чтобы получить UIImage, чтобы вернуть его в viewForZoomingInScrollView?

Вы можете отслеживать, где вы находитесь:

- (void) scrollViewDidScroll:(UIScrollView *)scrollView


CGFloat pageWidth = ScrollView.frame.size.width;
page = floor((self.ScrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1; 

Это позволяет мне знать, на какой «странице» контента я нахожусь, когда пользователь прокручивает ее.

0 голосов
/ 11 февраля 2016
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
    int page_ = (int)round(scrollView.contentOffset.x /scrollView.frame.size.width);
}
0 голосов
/ 24 мая 2011

Вы можете создать подкласс класса UIImageView и реализовать сенсорные методы.

...