Я пытаюсь сделать салфетки навигации с видом на контроллерах вместо XIb файлов с помощью этого учебника: https://www.youtube.com/watch?v=3jAlg5BnYUUSwift салфетки навигации размер корректировки зрения контроллера
Я сумел заменить файлы XIb с контроллерами зрения, но когда я запустить приложение ширина контроллеров зрения меньше, чем обычно:
Я не понимаю, как это установлено идентично с XIb файлов. Кто-нибудь знает, как это решить?
Вот мой код:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
let vc0 = self.storyboard?.instantiateViewControllerWithIdentifier("ViewController0")
self.addChildViewController(vc0!)
self.scrollView.addSubview(vc0!.view)
vc0!.didMoveToParentViewController(self)
let vc1 = self.storyboard?.instantiateViewControllerWithIdentifier("ViewController1")
var frame1 = vc1!.view.frame
frame1.origin.x = self.view.frame.size.width
vc1!.view.frame = frame1
self.addChildViewController(vc1!)
self.scrollView.addSubview(vc1!.view)
vc1!.didMoveToParentViewController(self)
let vc2 = self.storyboard?.instantiateViewControllerWithIdentifier("ViewController2")
var frame2 = vc2!.view.frame
frame2.origin.x = self.view.frame.size.width * 2
vc2!.view.frame = frame2
self.addChildViewController(vc2!)
self.scrollView.addSubview(vc2!.view)
vc2!.didMoveToParentViewController(self)
let vc3 = self.storyboard?.instantiateViewControllerWithIdentifier("ViewController3")
var frame3 = vc3!.view.frame
frame3.origin.x = self.view.frame.size.width * 3
vc3!.view.frame = frame3
self.addChildViewController(vc3!)
self.scrollView.addSubview(vc3!.view)
vc3!.didMoveToParentViewController(self)
self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width * 4, self.view.frame.size.height - 66)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Вы можете попробовать использовать .bounds вместо рамки и добавить в подвью в следующем методе. Взгляните, потому что этот метод вызывается при изменении пользовательского интерфейса: 'override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() }' – Juan
Когда я писал «Добавить в подвью», я хотел переместить код в метод, добавленный в предыдущий комментарий – Juan
Он фактически изменил размер представления так, чтобы он хорошо вписывался, но теперь сначала появляется ViewController3, и я могу перейти прямо к ViewController2, и это все ... – TheoF