使用 xib 和通过代码添加页面元素有什么区别?
如果我使用的是 xib,如何分配内存?
使用 xib 和通过代码添加页面元素有什么区别?
我所知道的唯一真正的区别是使用代码非常棒,建议初学者使用,以便他们了解 UIKit 的工作原理。
如果我使用的是 xib,如何分配内存?
就像您手动创建对象一样,除了例如,执行的不是您的视图控制器[[UIImageView alloc] init]
而是 UIKit 中的默认工厂类(很可能是 的一些私有子类NSCoder
)。
使用 XIB 与使用代码创建/布局对象之间有一个主要的非明显区别:Interface Builder 并不为每个接口类类型的每个属性提供设置——对于某些属性,您只需要使用代码。
有些事情在界面构建器中是困难/繁琐甚至不可能完成的,但在代码中却是微不足道的。至少在 ios3/4 时代,设置导航控制器以及在界面构建器中自定义其标题栏是一件非常痛苦的事情——我一直为此使用代码。
由于 XIB 仅由序列化对象组成,因此在分配对象后,使用 Interface Builder 或在代码中实现接口对象不会对内存使用产生影响。每种方法都有其优点和缺点。首先,您可能会发现通过在代码中创建界面对象可以更好地控制界面的行为和外观。而使用 Interface Builder 可以使布局对象的任务更容易,因为它的图形界面。