Отключить отскок UIScrollView на обоих концахIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Отключить отскок UIScrollView на обоих концах

Сообщение Anonymous »

Код: Выделить всё

import Foundation
import UIKit
import SnapKit

class MainViewController: UIViewController, UIScrollViewDelegate {

var scrollView: UIScrollView!

override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white

setupScrollView()
setupViewControllers()
}

func setupScrollView() {
scrollView = UIScrollView()
scrollView.isPagingEnabled = true
scrollView.showsVerticalScrollIndicator = false
scrollView.delegate = self
view.addSubview(scrollView)
scrollView.snp.makeConstraints { make in
make.edges.equalTo(view.safeAreaLayoutGuide)
}
}

func setupViewControllers() {
let firstVC = DetailViewController()
let secondVC = TabViewController()

addChild(firstVC)
addChild(secondVC)

scrollView.addSubview(firstVC.view)
scrollView.addSubview(secondVC.view)

firstVC.view.snp.makeConstraints { make in
make.top.leading.trailing.equalTo(scrollView)
make.width.equalTo(view.safeAreaLayoutGuide)
make.height.equalTo(view.safeAreaLayoutGuide)
}

secondVC.view.snp.makeConstraints { make in
make.top.equalTo(firstVC.view.snp.bottom)
make.leading.trailing.equalTo(scrollView)
make.width.equalTo(view.safeAreaLayoutGuide)
make.height.equalTo(view.safeAreaLayoutGuide)
make.bottom.equalTo(scrollView)
}

firstVC.didMove(toParent: self)
secondVC.didMove(toParent: self)

let contentHeight = view.safeAreaLayoutGuide.layoutFrame.height * 2
scrollView.contentSize = CGSize(width: view.safeAreaLayoutGuide.layoutFrame.width, height: contentHeight)
}

func scrollViewDidScroll(_ scrollView: UIScrollView) {
let contentHeight = scrollView.contentSize.height
let scrollViewHeight = scrollView.frame.size.height

// 아래쪽으로만 바운스 막기
if scrollView.contentOffset.y > contentHeight - scrollViewHeight {
scrollView.contentOffset.y = contentHeight - scrollViewHeight
}

// 위쪽으로만 바운스 막기
if scrollView.contentOffset.y < 0 {
scrollView.contentOffset.y = 0
}
}
}
Скриншот симулятора
Когда я перетаскиваю вниз, вид выше слегка виден.
Когда «scrollView» .contentOffset.y>contentHeight - ScrollViewHeight" и "scrollView.contentOffset.y

Подробнее здесь: https://stackoverflow.com/questions/785 ... -both-ends
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»