2013-03-20 7 views
2

Я борюсь с этим все утро уже более 3 часов, и я буквально схожу с ума!UIScrollView не будет работать

Я создаю приложение раскадровки для iOS 6 с помощью Xcode 4.6. Я перетащил UIScrollView в ViewController. После разработки видимой части представления прокрутки, используя его ручки, я растянул ее по вертикали и немного подтолкнул ее, чтобы эта часть была видна для меня, чтобы создать остальную часть экрана. После того, как я закончил, я позиционировал вид прокрутки, чтобы соответствовать представлению. Но я не изменял размер прокрутки, чтобы соответствовать размеру представления из IB.

Я добавил следующую строку кода в метод viewDidLayoutSubviews (Используется этот метод вместо viewDidLoad из-за комментария Криса here).

self.scrollView.contentSize = self.view.frame.size; 

Код запускается, но полосы прокрутки не отображаются, и прокрутка не работает вообще! Я просмотрел почти все вопросы и ответы здесь на SO относительно этого и пробовал все, но безрезультатно.

Я приложил проект Xkode с возможностью запуска here.

Скажите, пожалуйста, что я должен сделать, чтобы это работало. Я вечно расстроен Apple.

спасибо.

+0

self.scrollView.contentSize = CGSizeMake (self.scrollView.frame.size.width, 500); Просто поместите статическое значение и проверьте и, пожалуйста, установите соединение делегата с вашим scrollview. @Isuru –

+0

Содержимое для прокрутки должно быть больше, чем кадр (высота/ширина) scrollview, иначе он не будет прокручиваться, потому что нет необходимости прокручивать его, все содержимое видно без прокрутки. А также вы используете «Автомакет», – Exploring

ответ

5

Это довольно легко, хотя. Удалите метод viewDidLayoutSubviews и замените viewDidLoad на следующий код. Высота 672 жестко запрограммирована на данный момент .. но она изменится в соответствии с содержимым в scrollview.

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, 627); 
    self.scrollView.frame = self.view.frame; 
} 

И в раскадровке, выполните следующие шаги 1. Выберите Вид и перейти к размеру инспектора. 2. Выберите нижнее пространство из противопоказаний. 3. Изменить ограничение нижнего пространства и установить постоянное значение в 0 (это было -211).

Ссылка обновляется исходный код: http://www54.zippyshare.com/v/37137086/file.html

Надеется, что это помогает.

+0

Спасибо, тон, человек! Я вытаскивал волосы! Вместо того, чтобы просто кодировать значение «627», я заменил его на 'self.mailAdvancedSearchScrollView.frame.size.height'. Теперь он работает отлично. Еще раз спасибо! :) – Isuru

+0

Рад, что это помогло! Счастливое кодирование! – Kunal

+0

Привет, Kunal, его снова. Я снова застрял с той же проблемой, и я весь день пытался ее решить. На этот раз я все правильно выполнил и использовал приведенный выше код. Но все же он не прокручивается! Это действительно расстраивает! Я загрузил проект [здесь] (http://www21.zippyshare.com/v/44079522/file.html). Надеюсь, ты сможешь помочь мне еще раз, если его не слишком много спросить. – Isuru

1

UIScrollViews будет прокручивать, только если их contentSize больше, чем их кадр. Если он меньше или равен их рамке, они будут просто действовать как представления.

Если вы хотите, чтобы проверить это, попробуйте:

self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width,self.scrollView.frame.size.height+200); 
Смежные вопросы