2012-08-16 46 views
0

有没有一种方法可以将一个UIView从一个函数(在这种情况下,在一个静态构建的库中)添加到一个视图,而不必为视图本身传递一个框架。从类中添加无框架的UIView

贝宝的图书馆实现了这一点,我想知道如何执行。

我不想更改根控制器,我只想将我的视图添加到当前控制器。

[something addSubview:myNewView]; 

风格的东西在哪里,是我没有访问过的视图。

+0

没有通过一个框架的视图 - 父母或孩子?你确定你的意思是询问框架吗?这听起来像你可能更感兴趣的是找到当前最顶层的视图控制器和视图,而不是帧。 – Tommy 2012-08-16 21:30:23

+0

我认为这更多的是我寻找的功能,我想找到最顶层的视图控制器,然后覆盖。 – StlTenny 2012-08-17 20:39:02

回答

2

是的。您只需使用默认init方法而不是initWithFrame:

MyView *mySubview = [[MyView alloc] init]; 
[otherView addSubview:mySubview]; 

注意,这将导致在原点(0/0)零大小mySubview框架和虽然这将是不可见的。您可以稍后指定框架,一旦知道它,或者MyView可以覆盖init方法并将默认框架传递给[super initWithFrame:defaultFrame]

1

虽然DrummberB的回答是正确的,但视图不会出现在任何地方,因为没有框架的初始化视图默认为CGRectZero框架。迟早你需要为视图指定一个框架。