2014-09-09 1 views
1

У меня есть UIView в UIScrollView. UIScrollView имеет следующие ограничения:UIScrollview прокручивает вертикально, несмотря на правильное содержание. Размер

-Top space to superview equals 0 
-Leading space to superview equals 0 
-Width equals 320.0f 
-Height equals 45.0 

UIView имеет следующие ограничения:

-Top space to superview equals 0 
-Bottom space to superview equals 0 
-Leading space to superview equals 0 
-Trailing space to superview equals 0 
-Width equals 320.0 
-Height equals 45.0 

Насколько я знаю, это должно отключить все прокрутки. Тем не менее, я все еще могу прокручивать вертикально до максимального смещения 49,0. Все размеры кажутся правильными:

(lldb) po scrollView.contentSize 
(width=420, height=45) 
{ 
    320 

    45 

} 
(lldb) po scrollView 
<UIScrollView: 0x10c332980; frame = (0 0; 320 45); clipsToBounds = YES; autoresize = RM+TM; gestureRecognizers = <NSArray: 0x10c333b80>; layer = <CALayer: 0x10c32c530>; contentOffset: {0, 49}> 
(lldb) po contentView 
<UIView: 0x10c332400; frame = (0 0; 320 45); autoresize = W+H; layer = <CALayer: 0x10c3324c0>> 

Однако UIScrollView по-прежнему способен прокручивать вертикально. Кто-нибудь знает, как это возможно?

EDIT:

новая информация: проблема возникает только на прошивке 7.1, а не IOS 6.1

ответ

4

В конце концов я выяснили, что нижняя вставка содержимого прокрутки не была 0, а 49. Пока неясно, как она получает значение, поскольку она не была установлена ​​в редакторе макета, но я смог отключить вертикальную прокрутку следующим образом:

[scrollView setContentInset:UIEdgeInsetsZero]; 
0

UIView необходимо отключить автоматическое изменение размера, вызвав следующий метод

[uiview setTranslatesAutoresizingMaskIntoConstraints];

+0

Все еще не работает. Кроме того, если бы это было проблемой, я ожидал бы, что contentSize будет неправильным, но это кажется правильным. – Borre

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