gpt4 book ai didi

ios - xib 自定义 View 中的 ScrollView 以适应多种宽度

转载 作者:行者123 更新时间:2023-11-30 11:08:20 26 4
gpt4 key购买 nike

目前,我正在使用 Content View 从 xib 实现自定义 View 大小设置为Freeform 。这是我的内容 View 层次结构

Content View hierarchy

虽然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 文件。然后我将其实现为 Main.storyboard通过添加 UIView,正确设置约束并为其指定与 File’s Owner 相同的自定义类名称

运行 iPhone 8 时,一切都很完美,但切换到 iPhone 5s 等较小的设备时,我注意到我的 ScrollView 现在具有水平滚动。与 iPhone 5s、iPhone 8+ 等更大屏幕的设备相比,我的 ScrollView 现在稍微偏向右侧。

Notice the labels does not align with the clock which is center on iP8+ anymore请注意,标签不再与以 iP8+ 为中心的时钟对齐

所以我尝试删除 ScrollView ,并且所有设备都可以正常工作。因此,从这些来看,我认为 ScrollView 一定弄乱了我的自定义 View 。然后我做了一些 self 研究并找到了这些主题。

How to update constraints after adding UIView from xib on UIScrollView in swift?

ScrollView Add SubView in swift 3

我尝试了他们的解决方案并进行了修改以适合我的情况,但他们似乎都不适合我。所以我的问题是,有没有办法使 xib 文件的内容 View 适合每个宽度?

最佳答案

今天刚刚解决,感觉很棒

  1. 删除上述所有步骤,只需将 IBOutlet 保留在您的自定义 UIView 文件中
  2. 删除 File’s Owner 自定义类名,并将 Content View 自定义类名替换为与您的自定义 UIView 相同的名称
  3. 将 UIView 添加到您的 Main.storyboard 中,我的例子是 ScrollView。添加所有必需的约束(废话)
  4. 为 ScrollView 添加 IBOutlet,如下所示 @IBOutlet weak varscrollView: UIScrollView!
  5. 导航到您的 View Controller 文件
  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(宽度: self.view.frame.size.width, 高度: (alohaView?.frame.size.height)!)
  9. scrollView.addSubview(alohaView!) 将自定义 View 添加回 ScrollView

关于ios - xib 自定义 View 中的 ScrollView 以适应多种宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52460351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com