Страница UIПросматривайте элементы по одномуIOS

Программируем под IOS
Ответить
Anonymous
 Страница UIПросматривайте элементы по одному

Сообщение Anonymous »

Я пытаюсь имитировать прокрутку опций приложения «Камера iOS» (видео, фото, портрет и т. д.). При прокрутке страница параметров камеры отображается только по одному.
Изображение

Пока это то, что у меня есть. Как вы можете видеть в приведенной ниже демонстрации, пролистывание страниц останавливается на кратных границах просмотра прокрутки, когда пользователь прокручивает, а не так, как в приложении "Камера".

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

class ViewController: UIViewController {
lazy var stackView: UIStackView = {
let stackView = UIStackView()
stackView.axis = .horizontal
stackView.spacing = 50
return stackView
}()

lazy var scrollView: UIScrollView = {
let scrollView = UIScrollView()
scrollView.isPagingEnabled = true
return scrollView
}()

let options = ["Time-lapse", "Slo-Mo", "Cinematic", "Video", "Photo", "Portrait", "Pano"]

override func loadView() {
let view = UIView()
self.view = view
view.backgroundColor = .white
view.addSubview(scrollView)
scrollView.addSubview(stackView)

scrollView.translatesAutoresizingMaskIntoConstraints = false
scrollView.topAnchor.constraint(equalTo: view.topAnchor, constant: 100).isActive = true
scrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
scrollView.heightAnchor.constraint(equalToConstant: 50).isActive = true

stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.topAnchor.constraint(equalTo: scrollView.topAnchor).isActive = true
stackView.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor).isActive = true
stackView.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor).isActive = true
stackView.heightAnchor.constraint(equalTo: scrollView.heightAnchor).isActive = true

for option in options {
let label = UILabel()
label.text = option.uppercased()
stackView.addArrangedSubview(label)
}

scrollView.contentInset = UIEdgeInsets(top: 0, left: UIScreen.main.bounds.width/2, bottom: 0, right: UIScreen.main.bounds.width/2)
}
}
Изображение

Как это исправить?


Подробнее здесь: https://stackoverflow.com/questions/784 ... -at-a-time
Ответить

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

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

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

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

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