Расстановка объектов интерфейса

@IBDesignable
class GameFieldView: UIView {
    override func draw(_ rect: CGRect) {
        if let image = UIImage(named: "0", in: Bundle(for: self.classForCoder), compatibleWith: traitCollection) {
            image.draw(in: bounds)
        }
    }
}

@IBDesignable
class PedestalView: UIView {
    let imageHeight = CGFloat(800.0)
    let imageWidth = CGFloat(80.0)
    let kingHeight = CGFloat(100.0)
    let pedestalMinHeight = CGFloat(15.0)
    override func draw(_ rect: CGRect) {
        let scale = bounds.size.width / imageWidth
        var pedestalRect = CGRect(x: 0, y: bounds.size.height - scale * imageHeight, width: bounds.size.width, height: scale * imageHeight)
        if self.tag == 1 {
            if bounds.size.height > kingHeight * scale {
                if let image = UIImage(named: "playerpedestal", in: Bundle(for: self.classForCoder), compatibleWith: traitCollection) {
                    image.draw(in: pedestalRect)
                }
                pedestalRect.origin.y -= pedestalMinHeight * scale
            }
            if let image = UIImage(named: "player", in: Bundle(for: self.classForCoder), compatibleWith: traitCollection) {
                image.draw(in: pedestalRect)
            }
        } else if self.tag == 0 {
            if bounds.size.height > kingHeight*scale {
                if let image = UIImage(named: "kingpedestal", in: Bundle(for: self.classForCoder), compatibleWith: traitCollection) {
                    image.draw(in: pedestalRect)
                }
                pedestalRect.origin.y = (-imageHeight + kingHeight) * scale
            }
            
            if let image = UIImage(named: "king", in: Bundle(for: self.classForCoder), compatibleWith: traitCollection) {
                image.draw(in: pedestalRect)
            }
        }
    }
}

 


Выберем iPhone 4s и перетащим Label для набранных очков, Label для имени игрока, Button кнопка запуска новой игры  и 3 View (одно для игрового поля, другой для анимации выделенного шарика и третье для постамента)

 

Создаем новый файл

создаём еще один файл