将 XIB 文件自动调整为屏幕大小
Posted
技术标签:
【中文标题】将 XIB 文件自动调整为屏幕大小【英文标题】:auto-resize a XIB file to be as the screen size 【发布时间】:2016-07-24 15:59:52 【问题描述】:我有一个视图控制器,其中嵌入了一个滚动视图。在这个滚动视图中,我添加了 4 个视图,它们是 XIB 文件视图。 XIB 文件大小是“推断”的,尽管看起来是 iphone5 大小。加载后,它们不会自动调整为屏幕大小,而是保持在 iphone5 大小。
如何使 XIB 文件的大小与其加载的屏幕大小相同?
编辑:
我也尝试通过如下代码更改 nib 文件的大小:
// 1) Create the three views used in the swipe container view
let AVc :AViewController = AViewController(nibName: "AViewController", bundle: nil);
let BVc :BViewController = BViewController(nibName: "BViewController", bundle: nil);
let CVc :CViewController = CViewController(nibName: "CViewController", bundle: nil);
let DVc :DViewController = DViewController(nibName: "DViewController", bundle: nil);
AVc.view.frame = CGRectMake(0 , 0, self.view.frame.width, self.view.frame.height)
BVc.view.frame = CGRectMake(0 , 0, self.view.frame.width, self.view.frame.height)
CVc.view.frame = CGRectMake(0 , 0, self.view.frame.width, self.view.frame.height)
DVc.view.frame = CGRectMake(0 , 0, self.view.frame.width, self.view.frame.height)
// 2) Add in each view to the container view hierarchy
// Add them in opposite order since the view hieracrhy is a stack
self.addChildViewController(DVc);
self.scrollView!.addSubview(DVc.view);
DVc.didMoveToParentViewController(self);
self.addChildViewController(CVc);
self.scrollView!.addSubview(CVc.view);
CVc.didMoveToParentViewController(self);
self.addChildViewController(BVc);
self.scrollView!.addSubview(BVc.view);
BVc.didMoveToParentViewController(self);
self.addChildViewController(AVc);
self.scrollView!.addSubview(AVc.view);
AVc.didMoveToParentViewController(self);
这仍然没有影响,它加载了错误的大小。
【问题讨论】:
我没有使用任何自动布局 【参考方案1】:我建议您先使用大小类,然后应用必要的常量,这会有些困难,但随着时间的推移,您将学会如何应用大小类和常量。 Here 是您可以找到最佳 examples 的链接。
【讨论】:
【参考方案2】:如果你不使用自动布局,那么你可以简单地通过 for 循环添加四个视图:
let bounds = UIScreen.mainScreen().bounds
let width = bounds.size.width
let height = bounds.size.height
var yAxis: CGFloat = 0.0
for i in 0...3
let rect: CGRect = CGRectMake(0, yAxis, width, height)
swift i
case 0:
view1.frame = rect
case 1:
view2.frame = rect
case 2:
view3.frame = rect
case 3:
view4.frame = rect
default:
break
yAxis = yAxis + height
view1、view2、view3 和 view4 是您的 4 个 xib 视图。 另外,将滚动视图的内容大小设置为高度 yAxis。
推荐,你应该使用 AutoLayout 它会减少代码行数。
【讨论】:
我没有使用自动布局,但谢谢,我会试一试。 谢谢我已经做了一些类似的事情,但仍然没有影响。我已经添加了我的代码来展示我所做的事情。以上是关于将 XIB 文件自动调整为屏幕大小的主要内容,如果未能解决你的问题,请参考以下文章
自动调整 iPhone xib 应用程序到 ipad 的大小