как подогнать ширину вида xib к ширине superView - PullRequest
0 голосов
/ 17 января 2020

У меня есть вид в виде xib, и теперь его ширина составляет 728 пикселей.

image1

iamge2

Я применяю его в моем основном представлении следующим образом (ширина моего основного вида составляет 1024 пикселя), но его ширина не соответствует ширине моего основного вида.

image3

image4

image5

что мне делать? кто-нибудь может мне помочь?

код

class common: UIView {
    // コードから呼び出す際に使用される
    override init(frame: CGRect) {
        super.init(frame: frame)
        loadNib()
    }

    // Storyboardから利用する際に使用される
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        loadNib()
    }

    // 上記どちらのinitからも使用される共通関数で、xibファイルを呼び出す。
    func loadNib() {
        // 第1引数のnameには、xibファイル名
        // ownerはself固定
        // optionsはここではnil
        let view = Bundle.main.loadNibNamed("common", owner: self, options: nil)?.first as! UIView
        view.frame = self.bounds
        self.addSubview(view)
    }
}

1 Ответ

0 голосов
/ 17 января 2020

В вашем файле .xib укажите IBOutlet для просмотра следующим образом:

enter image description here

IBOutlet:

 @IBOutlet var contentView: UIView!

Вам нужно добавить autoresizingMask к представлению, которое вы загружаете. Здесь см. Изменение в коде.

Попробуйте изменить код ниже:

 func loadNib() {
               Bundle.main.loadNibNamed("common", owner: self, options: nil)
       addSubview(contentView)
       contentView.frame = self.bounds
       contentView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...