有没有办法从函数(在这种情况下,在静态构建的库中)添加UIView到视图而不传递视图本身的框架。
Paypal的图书馆实现了这一点,我想知道如何实施。
我不想更改根控制器,我只想在当前控制器上添加视图。
的风格
[something addSubview:myNewView];
某些内容是我无法访问的视图。
答案 0 :(得分:2)
是。您只需使用默认的init
方法,而不是initWithFrame:
:
MyView *mySubview = [[MyView alloc] init];
[otherView addSubview:mySubview];
请注意,这将导致原点(0/0)处的帧为mySubview的大小为零,尽管它不可见。您可以稍后指定框架,一旦您知道它,或者MyView可以覆盖init方法并将默认框架传递给[super initWithFrame:defaultFrame]
。
答案 1 :(得分:1)
虽然DrummberB的答案是正确的,但视图不会显示在任何地方,因为初始化的视图没有框架默认为CGRectZero的框架。迟早你需要为视图指定一个框架。