我有一个看起来像这样的 xib:
这是我的视频容器 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/