У меня есть метод, чтобы добавить два круга в фоновом режиме. При добавлении в представление UIViewController
они добавляются правильно. Однако при добавлении к виду UITableViewController
они добавляются на другую сторону.
Метод создания кругов:
extension UIViewController {
func makeCircle(radius: CGFloat) -> UIView {
let circle = UIView()
circle.backgroundColor = .yellow
circle.translatesAutoresizingMaskIntoConstraints = false
circle.layer.cornerRadius = radius
NSLayoutConstraint.activate([
circle.widthAnchor.constraint(equalToConstant: radius * 2),
circle.heightAnchor.constraint(equalToConstant: radius * 2)])
return circle
}
}
Метод добавления кругов внутри расширения UIViewController
:
func addCircles() {
// Center right circle
let circle1Radius = CGFloat(152)
let circle1 = makeCircle(radius: circle1Radius)
view.addSubview(circle1)
NSLayoutConstraint.activate([
circle1.centerYAnchor.constraint(equalTo: view.centerYAnchor),
circle1.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: circle1Radius)])
// Bottom left circle
let circle2Radius = CGFloat(77)
let circle2 = makeCircle(radius: circle2Radius)
view.addSubview(circle2)
NSLayoutConstraint.activate([
circle2.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 70),
circle2.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: -50)])
}
Для обоих классов круги добавляются в метод viewDidLoad
:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
addCircles()
}
}
ViewController: UIViewController
, вид выглядит правильно :
Однако для TableViewController: UITableViewController
(точно такой же viewDidLoad
, как для контроллера выше), вывод выглядит наоборот:
Может кто-нибудь дать мне совет, что я делаю неправильно?