2015-05-04 2 views
3

Я очень новичок в Swift и развиваюсь на ios, но не могу найти способ заставить UIScrollView прокручиваться вниз и оставаться внизу. Я пробовал тонны учебников по этому поводу и до сих пор ничего. У меня есть элемент ContentView внутри моего элемента ScrollView. В этом ContentView есть все мои ящики, которые я хочу прокрутить, но он не прокручивается. Он делает, хотя отскок, если это имеет значение ... может ли кто-нибудь отправить меня в правильном направлении?Scroll View ios 8 Xcode not Scrolling - Swift

+0

Пожалуйста, поместите код, который вы пытаетесь –

ответ

4

Звучит так, как будто у вас не было contentSize для вашего прокрутки. Для того, чтобы сделать это, если вы не используете Автокомпоновку:

scrollView.contentSize = // The size of your content. 

При использовании автоматической раскладки вам необходимо убедиться, что у вас есть NSLayoutConstraints от каждого края контента к каждому соответствующему краю вашего UIScrollView. При этом размер вашего UIScrollView будет установлен автоматически.

Надеюсь, что это поможет.

+0

я добавил этот код: ScrollView.contentSize = CGSize (ширина: 375, высота: 1500) в моем viewDidLoad функции() и ничего не произошло. – FreeTheStudents

+0

Hummm, вы думаете, что можете опубликовать соответствующий код, чтобы я мог лучше понять, что происходит? – ABakerSmith

+0

'class ViewController: UIViewController { @IBOutlet var ScrollView: UIScrollView! @IBOutlet var ContentView: UIView! @IBOutlet var Статус: UIView! @IBOutlet var Камера: UIView! @IBOutlet var TextBox: UIView! @IBOutlet var Post_Text: UIView! @IBOutlet var Post_Media: UIView! @IBOutlet var Like_Button: UIButton! override func viewDidLoad() { super.viewDidLoad() // Выполняйте любую дополнительную настройку после загрузки представления, как правило, из наконечника. ScrollView.contentSize = CGSize (ширина: 375, высота: 1500) } ' – FreeTheStudents

7

Попробуйте установить contentSize в viewDidLayoutSubviews

override func viewDidLayoutSubviews() { 
    super.viewDidLayoutSubviews() 
    scrollView.contentSize = CGSize(width: 375, height: 1500) 
} 
+0

Пробовал это и никаких результатов. Я видел этот метод в другом учебнике, но я не знаю, почему он не работает. У меня есть набор scrollView с шириной 375 и высотой 1500, а затем внутри этого я имею contentView тех же размеров, где хранятся все текстовые элементы. – FreeTheStudents

+0

Вы используете автомасштабирование? если нет, я порекомендую его использовать. – iAnurag

7

я, наконец, понял это через 2 дня, и это было очень просто. Все, что я сделал, это установить scrollView в размере экрана, но затем установить высоту представления контента на 1500 пикселей и начать работу. Всем спасибо!

0

Просто хотел добавить примечание к FreeTheStudentsAnswer, если у кого-то была аналогичная проблема - я установил scrollView на размер экрана, а затем установил высоту представления контента с большим значением и начал работать только тогда, когда Я установил их в viewDidAppear вместо viewDidLoad. Не уверен, если это поможет любому, но сосредоточил свой вопрос

-1

Try This

1.scrollView.bounds = YES; 
2.scrollView.contentSize = CGSize(width: self.view.frame.size.width, height: YourContentView.frame.size.height); 
0

В Scrollview, прокрутка происходит только тогда, когда Scrollview имеет достаточно места, чтобы прокрутить его содержимое.

Вы сказали, что scrollview и его контент имеют одинаковые размеры. Тогда он не будет прокручиваться. Scrollview.contentSize должен быть как минимум в два раза больше размера прокрутки, если вы хотите, чтобы он прокручивался.

Подсказка: размер прокрутки не должен превышать размер экрана iPhone. Размер содержимого прокрутки должен быть больше, чем scrollview. Прокрутка позволяет прокручивать содержимое своего содержимого.

0

СВИФТ 4.0 Update

@IBOutlet weak var myScrollView: UIScrollView! 

    override func viewDidLoad() { 
    super.viewDidLoad() 

    myScrollView.alwaysBounceVertical = true 
    myScrollView.alwaysBounceHorizontal = true 
    myScrollView.isScrollEnabled = true 
    myScrollView.contentSize = CGSize(width: 375, height: 1000) 
}