【问题标题】:Scrollview in xib custom view to fit with multiple widthxib自定义视图中的滚动视图以适应多个宽度
【发布时间】: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+ 等更大的屏幕设备,我的滚动视图现在失去了一点到右侧。

请注意,标签不再与 iP8+ 上的时钟对齐

所以我尝试删除滚动视图,并且所有设备都可以正常工作。所以从这些来看,我在想滚动视图一定搞砸了我的自定义视图。然后我做了一些自我研究,发现了这些主题。

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


    【解决方案1】:

    今天刚解决,感觉不错

    1. 删除上述所有步骤,只需将 IBOutlet 保留在您的自定义 UIView 文件中
    2. 删除File’s Owner自定义类名,将Content View自定义类名替换为与您的自定义UIView相同的名称
    3. 将 UIView 添加到您的Main.storyboard,我的情况是 ScrollView。添加所有必需的约束 (duh)
    4. 像这样为 ScrollView 添加 IBOutlet @IBOutlet weak var scrollView: UIScrollView!
    5. 导航到您的视图控制器文件
    6. let alohaView = Bundle.main.loadNibNamed("Feature", owner: self, options: nil)?.first as? FeatureViewFeature 是您的 xib 文件,FeatureView 是您的自定义 UIView 文件控件,该 xib 文件
    7. 添加alohaView?.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 500) 注意我对 500 高度进行了硬编码,将对此进行更多操作
    8. scrollView.contentSize = CGSize(width: self.view.frame.size.width, height: (alohaView?.frame.size.height)!)
    9. scrollView.addSubview(alohaView!) 将自定义视图添加回滚动视图

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 2016-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多