Растягивание UIView в ширину UIScrollView - PullRequest
0 голосов
/ 06 января 2012

У меня есть UIView, который мне нужно растянуть до ширины UIScrollView.Проблема в следующем: problem Мне нужно растянуть этот UIView (это EGOTableViewPullRefresh, просто пользовательский UIView).В инициализацию вида я положил [_refreshHeaderView setAutoresizingMask:UIViewAutoresizingFlexibleWidth];.Я попробовал:

-(void)scrollViewDidZoom:(UIScrollView *)scrollView {
    NSLog(@"scrollViewDidZoom");
    [_refreshHeaderView setFrame:CGRectMake(0.0f, 0.0f - webScroller.bounds.size.height, webScroller.frame.size.width, webScroller.bounds.size.height)];
}

Но это выглядит как изображение.Если я захожу на страницу, созданную для iOS (например, Google для мобильных устройств), она выглядит нормально: googleok Как я могу это сделать?

1 Ответ

2 голосов
/ 06 января 2012

size.width для UIScrollView - это ширина представления на вашем устройстве, а не ширина содержимого в представлении прокрутки (которое будет scrollView.contentSize.width).

Это означает, что если "ваш вид" находится за пределами UIScrollView, вам нужна ширина прокрутки, но если ваш вид находится внутри вида прокрутки, вам нужна ширина контента.

Обратите внимание на нижнюю часть экрана / скриншот Google, который вы предоставили. Заметьте, как нет горизонтальной прокрутки? В этом случае ширина содержимого представления прокрутки равна ширине представления прокрутки, поэтому она отлично работает. Верхнее изображение / изображение переполнения стека имеет горизонтальную полосу прокрутки. Поэтому ширина содержимого представления прокрутки больше ширины представления прокрутки.

Краткий ответ: Попробуйте установить для своего вида значение scrollView.contentSize.width, а не scrollView.frame.size.width

...