【发布时间】:2019-02-26 20:16:38
【问题描述】:
目前,我正在从 xib 实现自定义视图,其中 Content View 大小设置为 Freeform。这是我的内容视图层次结构
虽然 Content View 是 Freeform,但我将宽度设置为 375,这与 iPhone 8 的宽度相同。然后我创建了一个自定义 UIView 文件
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
private func commonInit() {
Bundle.main.loadNibNamed("DetailsWeather", owner: self, options: nil)
addSubview(contentView)
contentView.frame = self.bounds
contentView.autoresizingMask = [.flexibleHeight, .flexibleWidth]
}
之后,我将 xib File’s Owner 自定义类名设置为上面相同的自定义 UIView 文件。然后我通过添加 UIView 将其实现到 Main.storyboard 中,正确设置约束并为其提供与 File’s Owner 相同的自定义类名称
在运行 iPhone 8 时,一切都很完美,但切换到 iPhone 5s 等较小的设备时,我注意到我的滚动视图现在具有水平滚动。与 iPhone 5s 相比,iPhone 8+ 等更大的屏幕设备,我的滚动视图现在失去了一点到右侧。
所以我尝试删除滚动视图,并且所有设备都可以正常工作。所以从这些来看,我在想滚动视图一定搞砸了我的自定义视图。然后我做了一些自我研究,发现了这些主题。
How to update constraints after adding UIView from xib on UIScrollView in swift?
ScrollView Add SubView in swift 3
我尝试了他们的解决方案并进行了修改以适应我的情况,但似乎没有一个适合我。所以我的问题是,有没有办法让 xib 文件的内容视图适合每个宽度?
【问题讨论】:
标签: ios swift uiview uiscrollview xib