0

ビュー自体のフレームを渡さずに、関数 (この場合は静的に構築されたライブラリ内) からビューに UIView を追加する方法はありますか。

Paypal のライブラリはこれを実現しており、実装はどうなるのだろうと思っていました。

ルートコントローラーを変更したくありません。現在のコントローラーにビューを追加したいだけです。

のスタイルで

[something addSubview:myNewView];

私もアクセスできないビューがある場所。

4

2 に答える 2

2

はい。init次の代わりに、単にデフォルトの方法を使用しますinitWithFrame:

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

これにより、原点 (0/0) のフレームが mySubview のサイズがゼロになり、非表示になることに注意してください。後でフレームを指定するか、MyView で init メソッドをオーバーライドしてデフォルト フレームを に渡すことができます[super initWithFrame:defaultFrame]

于 2012-08-16T21:16:13.457 に答える
1

DrummberBの答えは正しいですが、フレームなしで初期化されたビューはデフォルトでCGRectZeroのフレームになっているため、ビューはどこにも表示されません。遅かれ早かれ、ビューにフレームを割り当てる必要があります。

于 2012-08-16T21:26:01.643 に答える