contentMode
プロパティに関するUIViewの公式ドキュメントによると:
The content mode specifies how the cached bitmap of the view’s layer is adjusted when the view’s bounds change
この定義の内容は何によって定義されていますか? それはサブビューですか、それともビューの背景色を定義した場合などです。
UIViewContentModeCenter
私の最初の推測では、少なくともビュー内のサブビューに適用する必要がありますが、たとえば、次のコード スニペットでは、タグを操作したときに期待した結果が得られません 。
UIView* redView = [[UIView alloc] initWithFrame:CGRectMake(80, 80, 150, 200)];
redView.contentMode = UIViewContentModeCenter;
redView.backgroundColor = [UIColor redColor];
UIView* greenView = [[UIView alloc] initWithFrame:redView.bounds];
greenView.backgroundColor = [UIColor greenColor];
[redView addSubview:greenView];
redView.frame = CGRectInset(redView.frame, -5, -5);
[self.view addSubview:redView];
greenView を含む redView をセットアップしました。また、redview のコンテンツ モードを次のように設定しましたUIViewContentModeCenter
。親のフレームを変更したときに、書いたコードで greenView が中央に配置されないのはなぜですか? すべきことではないUIViewContentModeCenter
か。
明確にしてくれてありがとう!
Ps:上記のコードはloadView
、単純なビュー コントローラー テンプレート プロジェクトで簡単にテストできます。