Извините, заранее, это длинный вопрос, но я хотел объяснить как можно лучше.
Мне нужно реализовать пошаговое руководство (руководство по запуску в первый раз) для проекта, который будет показан толькопользователь впервые запускает приложение.
Я реализовал его, создав файл .xib, где я просто создавал представление для каждого элемента, который мне нужно реализовать для пошагового руководства, создавая объекты, ссылающиеся нак .xib модели.
Но теперь я должен реализовать это без использования файлов .xib, где мне нужно сделать это через раскадровку.На этот раз я вставил scrollView, а затем поместил в него другой вид с объектами, которые мне понадобятся, такими как (надписи, изображения, кнопки и т. Д.), Но он не работает, хотя я могу создать всеобъекты, копируя вид прямо под scrollView.Когда я пытаюсь расширить ширину scrollView со всеми созданными представлениями, чтобы я мог выполнять разбиение по страницам, он не создает каждое представление рядом друг с другом, а показывает только последний объект (представление) в симуляторе, когда они складываются вертикально, и я не могу выполнить подкачку.
Теперь я предоставляю пример кода, чтобы показать, как я пытаюсь реализовать это:
import UIKit
class DenemeViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var pageControl: UIPageControl!
@IBOutlet weak var repeatingView: UIView!
var viewArray = [UIView]()
override func viewDidLoad() {
super.viewDidLoad()
let temporaryView = repeatingView
temporaryView?.backgroundColor = .black
viewArray.append(temporaryView!)
let temporaryViewTwo = repeatingView
temporaryViewTwo?.backgroundColor = .blue
viewArray.append(temporaryViewTwo!)
pageControl.numberOfPages = viewArray.count
pageControl.currentPage = 0
view.bringSubview(toFront: pageControl)
setupScrollView(items: viewArray)
}
func setupScrollView(items: [UIView]) {
scrollView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height)
scrollView.contentSize = CGSize(width: view.frame.width * CGFloat(items.count), height: view.frame.height)
scrollView.isPagingEnabled = true
for i in 0..<items.count {
items[i].frame = CGRect(x: view.frame.width * CGFloat(i), y: 0, width: view.frame.width, height: view.frame.height)
scrollView.addSubview(items[i])
}
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let pageIndex = round(scrollView.contentOffset.x/view.frame.width)
pageControl.currentPage = Int(pageIndex)
}
}
Как вы можете видеть, я сначала создаю два разных представленияв viewDidLoad, ссылаясь на «repeatatingView», которое является выходом представления внутри scrollView на раскадровке.Затем я возвращаю их в массив и пытаюсь реализовать подпредставления scrollView с представлениями.
Я ожидал увидеть scrollView, начинающийся с представления с черным фоном, и пока я делаю постраничное перелистывание, а затем представление с синим фономдолжно появиться.
Когда я запускаю это, я вижу только синий вид, и я не могу делать какие-либо листание или прокрутку.
![Storyboard Hierarchy](https://i.stack.imgur.com/j54J2.png)