2016-09-07 3 views
0

Это, как я добавляю UIScrollView в моем viewDidLoadUIScrollView вид порта координаты

UIScrollView* scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; 
scrollView.backgroundColor = [UIColor redColor]; 
scrollView.scrollEnabled = YES; 
scrollView.pagingEnabled = YES; 
scrollView.showsVerticalScrollIndicator = YES; 
scrollView.showsHorizontalScrollIndicator = YES; 
scrollView.contentSize = CGSizeMake(self.view.bounds.size.width , self.view.bounds.size.height * 2); 
[self.view addSubview:scrollView]; 
scrollView.delegate = self; 

Когда Scrollview загружается в первый раз, это координаты: {(0,0), (widthOfiPhone, 0), (0, heightOfiPhone), (widthOfiPhone, heightOfiPhone)}

Всякий раз, когда отделки прокрутки, я хочу получить координаты видового экрана в scrollview. Как это сделать? Благодаря

Edit: From the image, As the view is scrolling, it's y co-ordinates are changing. How do I track that

Кредитов Image: https://oleb.net/blog/2014/04/understanding-uiscrollview/

+1

что вы имеете в виду 'viewport'? – Lion

+0

Содержимое прокрутки, которое отображается на экране в любой момент времени. Скажем, если мой контент 320 * 1500, на iphone 5s, когда scrollview загружается в первый раз, координаты окна просмотра: {(0,0), (320, 0), (0, 568), (320, 568)} –

+0

@ VamshiKrishna ваш вопрос непонятен. Добавьте более подробную информацию, чтобы предоставить кому-то хорошее решение. – Mayur

ответ

0

Вы можете реализовать UIScrollView delegate метод для обнаружения при прокрутке конца: scrollViewDidEndDecelerating и в этом методе вы можете получить координаты вашего scrollview и это content. Btw content's cooridinate будет таким же с уважением scrollview !!!

Вы можете получить visible rect от Scrollview как,

CGRect visibleRect = [subViewOfScrollView convertRect:subViewOfScrollView.bounds toView:self.view]; 
+0

Что такое "yourSubview"? –

+0

Это всегда дает мне '{{0, 0}, {320, 568}}' выход. Если вы видите прикрепленный gif, координаты y меняются. –

+0

что вы хотите точно? вам нужны координаты относительно основного вида (self.view) или по отношению к scrollview или еще? – Lion

0

Во-первых, наблюдать Scrollview агента, а затем реализовать его прокси-метод

(void) scrollViewDidEndDecelerating: (UIScrollView *) scrollView { 
    NSLog (@ "% f,% f,% f,% f", scrollView.frame.origin.x, 
    scrollView.frame.origin.y, 
    scrollView.frame.size.width, 
    scrollView.frame.size.height); 
} 

Это должно быть возможно

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