ios - 将 Xib 添加为 subview 时,Xib 框架大小不正确

标签 ios swift xcode swift4 swift5

我有一个看起来像这样的 xib:

enter image description here

这是我的视频容器 View 类:

class VideoContainerView: UIView {

    @IBOutlet var rootView: UIView!
    @IBOutlet weak var videoView: VideoView!
    @IBOutlet weak var playIconContainer: UIView!
    @IBOutlet weak var timeContainer: UIView!
    @IBOutlet weak var timeLabel: UILabel!

    override init(frame: CGRect) {
        super.init(frame: frame)
        initialize()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        initialize()
    }

    func initialize() {
        Bundle.main.loadNibNamed("VideoContainerView", owner: self, options: nil)
        rootView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
        addSubview(rootView)
    }

}

这是我的 PostMediaCollectionViewCell 类:

class PostMediaCollectionViewCell: UICollectionViewCell {

    @IBOutlet weak var container: UIView!
    @IBOutlet weak var imageView: UIImageView!
    @IBOutlet weak var moreView: UIView!
    @IBOutlet weak var moreViewLabel: UILabel!
    @IBOutlet weak var videoContainerView: VideoContainerView!

    override func awakeFromNib() {
        super.awakeFromNib()
    }

    func initialize() {

    }

}

但是当我在模拟器中运行应用程序时,VideoContainerView 宽度/高度是错误的。它似乎不尊重我的自动布局值,因为打印出其边界后,其宽度和高度等于 661.0 和 372.0(xib 中的硬编码值,上面的屏幕截图)。

我做错了什么?我需要改变什么才能让它发挥作用?

最佳答案

let view = Bundle.main.loadNibNamed("VideoContainerView", owner: self, options: nil)?.first as! UIView
addSubview(view)
rootView.frame = self.bounds
rootView.autoresizingMask = [.flexibleWidth,.flexibleHeight] 

关于ios - 将 Xib 添加为 subview 时,Xib 框架大小不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59439849/

相关文章:

objective-c - 在 xcode 上验证 mac 应用程序时出现 'com.apple.developr.aps-environment' 错误

ios - UICollectionView 单元格 subview 不调整大小

ios - swift 。为自定义区域设置设置特定时间格式(12/24 小时)

ios - 如何让 iOS 应用从中断处开始

ios - phonegap 3.0 console.log 插件 http :localhost/! gap_exec 404 NOT FOUND

ios - 使用表格单元格内的按钮从原型(prototype)单元格传递数据

ios - Firebase 中的简单查询

ios - SWIFT ABI 在哪里出现?

javascript - 在 iOS 中以 ajax 响应播放 html5 音频

Swift - 将结构传递给方法?