首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >self.view = someController.view与[self.view addSubview:someController.view]

self.view = someController.view与[self.view addSubview:someController.view]
EN

Stack Overflow用户
提问于 2011-07-28 02:29:15
回答 3查看 849关注 0票数 2

我在试着找出我有个bug。最初,我的同事只是使用

代码语言:javascript
复制
[self.view addSubview:someController.view];

从当前的ViewController。这看起来是对的,但是有点慢。我想根据需要懒惰地加载视图,并使用我在本文中获得的建议:How to optimize performance in view controller navigation with UISegmentedControl and UITabBarController

它的工作速度更快,只需将视图设置为

代码语言:javascript
复制
self.view = someController.view

但是,视图的高度不正确。我正在尝试调试正在发生的事情,但我不确定是否理解将新视图作为子视图添加与将其设置为当前视图之间的区别。我会认为将其添加到我当前的视图中,或将其作为子视图添加将占据相同的大小,但我肯定遗漏了一些东西。任何帮助都是非常感谢的。谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-28 02:46:31

AFAIK将视图添加为子视图时,父视图将查看其自动调整大小蒙版,并相应地调整视图大小。就像用另一个视图“替换”视图本身一样,在另一个视图中根本不会发生大小调整。

票数 0
EN

Stack Overflow用户

发布于 2011-07-28 02:47:39

self.view = someController.view,表示视图被新视图替换。这意味着新视图将在someController.view中设置所有属性。

添加一个视图作为子视图意味着新的视图必须面对已经在父视图中设置好的所有内容(从框架、大小和边距开始)。

每种方法都有不同的含义,应该用于不同的结果。

票数 1
EN

Stack Overflow用户

发布于 2011-07-28 03:25:35

第一个用someController.view完全取代了self.view

第二个将someController.view添加到您的self.view中。这意味着除了someController.viewframeSize之外,self.view将是可见的。

请查看Documentation

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6849338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档