【问题标题】:ScrollView is not showing custom UIViewScrollView 未显示自定义 UIView
【发布时间】:2020-03-30 00:45:09
【问题描述】:

我尝试了很多在 stackoverflow 上类似问题中提出的解决方案,但它们要么已过时,要么无法正常工作。 我在我的UIViewController 上添加了一个UIScrollView 并制作了一个自定义.xib,我在其中创建了我的长(1336 高度)视图并希望在scrollView 上显示它。所以在ViewDidAppear() 我添加了这个:

scrollView.contentSize = CGSize(width: self.view.frame.width, height: 1500)
scrollView.addSubview(mainView)

在班级顶部声明let mainView: MainView = MainView()。当我运行它时,滚动视图只显示空白,没有子视图,但向上滑动显示垂直滚动条,这意味着高度 1500 正在工作,但子视图没有显示。

【问题讨论】:

  • 您是否尝试过使用 bringSubviewToFront 方法?此外,您可以尝试在初始化时为 mainView 设置框架。
  • 请提供有关您的 MainView 的更多信息是只是 UIVIew 还是其他什么?
  • @ThePedestrian 下面的答案是实例化 xib 正在发生的解决方案,但存在一个问题,因为 MainView 超出了滚动视图的宽度范围。
  • @ChaudharyTalha 使用自动布局约束并为 mainView 和包含滚动视图的视图设置相等的宽度。同时将滚动视图水平居中对齐容器视图

标签: ios swift uiview uiviewcontroller uiscrollview


【解决方案1】:
let bundle = NSBundle(forClass: self.dynamicType)
let nib = UINib(nibName: <ViewName>, bundle: bundle)
let mainView = nib.instantiateWithOwner(self, options: nil).first as! MainView

解释

使用上述格式实例化xib。请尝试此操作,然后将其添加到您的UIScrollView

告诉我它成功了

更新: 要设置自定义框架,我们需要将框架赋予mainview object..

mainView.frame = scrollView.bounds

【讨论】:

  • 它只需要摆脱一些 swift 3 错误,但主视图中的内容超出了滚动视图的框架宽度。我检查了滚动视图和主视图的宽度相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多