Ответ 1
Как это,
func scrollViewDidScroll(scrollView: UIScrollView) {
if scrollView.contentOffset.x>0 {
scrollView.contentOffset.x = 0
}
}
И вы можете установить это свойство:
scrollImg.directionalLockEnabled = true
Просмотр прокрутки
У меня есть UIScrollView с ограничениями left: 0, top: 0, right: 0, bottom: 0
Внутренний просмотр прокрутки
В верхней части этого UIScrollView
находится UIImageView
с ограничениями left: 0, top: 0, right: 0, height: 200
Под этим я имею UITextView
с ограничениями left: 0, top: 0, right: 0, bottom: 0
Это означает, что UITextView
изменит размер относительно его содержимого, и я установил scrollingEnabled
в false
для UITextView
.
Итак, когда я бегу, он почти отлично работает.
Одна проблема: UIImageView
занимает примерно на 10% больше фактической ширины экрана. Следовательно, включена горизонтальная прокрутка.
Я попытался добавить строки
imageView.frame = CGRect(0, 0, screenSize.width, 200)
scrlView.contentSize.width = screenSize.width
но это не имеет значения. Я все еще могу прокручивать по горизонтали, а Image View по-прежнему занимает около 10% больше фактической ширины экрана.
Заметьте, я не установил ширину экрана imageView в раскадровке, только программно.
Любые идеи?
Как это,
func scrollViewDidScroll(scrollView: UIScrollView) {
if scrollView.contentOffset.x>0 {
scrollView.contentOffset.x = 0
}
}
И вы можете установить это свойство:
scrollImg.directionalLockEnabled = true
Вышеупомянутые проверки только для X в одном направлении (положительное движение). Чтобы предотвратить прокрутку влево/вправо:
func scrollViewDidScroll(scrollView: UIScrollView) {
if scrollView.contentOffset.x != 0 {
scrollView.contentOffset.x = 0
}
}
Не требуется блокировка направления.
Если вы используете раскадровку и автозапуск, вам следует подумать о том, как ScrollView работает в раскадровке с автозапуском.
Рассмотрим следующее.
Добавьте один вид на свой scrollView со сдерживаниями слева, справа, сверху, снизу, высоте, ширине,
Сделайте выход ширины и высоты
Добавьте свои подвид в представление, которое вы добавили в scrollView
обновите ширину экрана, например: 320 для iPhone5 или 4.
self.viewWidth = SCREEN_WIDTH;
[self.view updateConstraints];