0

UIViewを別のUIViewに追加して、子ビューがその親のすべてをカバーするようにします。

最初に私はしました:

UIView * childVU;
childVU = [[UIView alloc] initWithFrame:parentVU.frame];

childVUをparentVUに追加したとき、childVUのトップはparentVUのトップよりも低くなりました。

だから私はしました:

childVU = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 10000.0, 10000.0)];

シミュレーターで正しく実行されていますが、それは本当に安全ですか?

4

2 に答える 2

1

はい、大丈夫です。コンテンツを表示する前に、親ビューがclipToBounds無効になっていることを確認してください。また、これは大きなビューサイズであり、古いデバイスではサポートされません。このサイズのコンテンツを実際に使用している場合は、UIScrollViewまたはに配置する必要がありCATiledLayerます。

于 2012-04-06T15:07:41.050 に答える
1

あなたはあなたの最初のコードで正しい軌道に乗っています。フレームは親に相対的であるため、使用すべきであり、使用すべきではboundsないことを除いて。frame

UIView * childVU;
childVU = [[UIView alloc] initWithFrame:parentVU.bounds];

子ビューを大きくすることは機能しますが、それを行う正しい方法ではありませんが、ビューにclipsToBounds設定されているか、設定されている場合、子ビューをそれ自体のサイズよりも大きく描画することはできません。YESmasksToBoundsYES

于 2012-04-06T15:09:11.027 に答える