私のカスタムUIView
は、親の容器UIView
内にレンダリングされません。なぜ私のUIViewサブビューは親内でレンダリングされませんか? (コードが添付されています)
- MainViewController - (画面全体を占有しません)
UIView
「customViewContainer
」、および - を持っているのCustomView - XIBファイルと
UIView
である - それはUIView
次のとおりです。だから私が持っているものがあります :ここではそれは(AspectFitで)レンダリングされるときに、親の境界の外側にレンダリングされていることを「customViewContainer
は」
セットアップするために使用されるコードは、カスタムビューはMainViewControllerから、この抽出物であります
< <カット - アップデート2を参照してください以下>>
CustomView
ビューが親customViewContainer
よりも面積が大きい方法でレンダリングされている理由だから私が見ることができませんか?私が望むのは、customview
が、AspectFit
タイプのアプローチごとに親「customViewContainer
」に完全に収まることです。
おかげ
EDIT 1(追加明確化) - 親ビューでI「クリップサブビューは、」それは、物事をクリップんが、私は本当に親ビューエリア内のカスタムビューをレンダリングするために必要なものならば(画面の全領域ではありません)。だから私は、(a)親ビューの中心にあるカスタムビューの中心と、(b)親ビューへのAspectFitへのカスタムビューを適切にする必要があります。何か案は?
EDIT 2 - 申し訳ありません
を更新 - 元の質問にコードをコピー/ペーストミスを犯した - ので、私は以下の正しいバージョンを出してあげる、それを編集することができないよう - ので、明確にします:
MainViewController
- (画面全体を占有しません)UIView
「containerView
」を持っている、とCustomView
- XIBファイルとUIView
である - それは(AspectFit
で)レンダリングされたときにことをここUIView
です親の範囲外でレンダリングする "containerView
"
以下のコードでこれは意味をなさないでしょうか?このコードの理由は、UIView
というカスタムを持っていますが、XIBファイルが関連付けられているため、MainController
ビューを使用できる唯一の方法でした。つまり、MainController
view
にコンテナビューを表示し、プログラムでコンテナビューにCustomView
を追加します。
Re:「フレームビューまたはビューの中心を設定したいものにする」 - 私がプログラムビュー/手動でカスタムビューの寸法を設定する必要があると言っていますか? (親コンテナビューとの関係で)?
宣言的なレイアウト設定を使用して「カスタムビューをXIBファイルからロードし、aspectFitからこのビューをself.containerViewにロードする」と言うことができる方法がありましたが、これが可能かどうか疑問に思うのですか?IBファイルの親の「クリップサブビュー」プロパティがチェックされている場合
は、以下のコード(元の質問でのミス私は/にそれを貼り付けや変数名などを変更コピー)
- (void)viewDidLoad
{
[super viewDidLoad];
// Load the custom Altimeter View into this UIControllerView's container UIView for it
NSArray *nibs = [[NSBundle mainBundle] loadNibNamed:@"Customview" owner:self options:nil];
for (NSObject *obj in nibs) {
if ([obj isKindOfClass:[Customview class]]) {
Customview *cv = (Customview*)obj;
[self.containerView addSubview:cv];
break;
}
}
// UI Layout
self.containerView.layer.borderWidth = 2;
self.containerView.layer.borderColor = [[UIColor redColor] CGColor];
}
ありがとうございます - 問題は私が "クリップのサブビュー"をクリップする場合ですが、実際には親ビュー領域(画面の全領域ではありません)内にカスタムビューをレンダリングする必要があります。だから私は、(a)親ビューの中心にあるカスタムビューの中心と、(b)親ビューへのAspectFitへのカスタムビューを適切にする必要があります。何か案は? – Greg
もう少し具体的になりますか?私はあなたがここで何を意味するのか分からなかった。 self.view.center = self.parentView.centerはビューを中央に配置する必要があります。 AspectFitでは、組み込みのプロパティがあるかどうかはわかりません。私が間違っていない場合、それはUIImageViewのために利用可能です – Mugunth
永続化のおかげで - 私はメインの質問で私のEDIT2でより多くを更新/明確化しました – Greg