• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:objectiv-cで困っています。教えてください)

objectiv-cでUIViewを中央に表示させる方法

このQ&Aのポイント
  • objectiv-cの初心者がUIViewを中央に表示させる方法について教えてください。
  • initWithFrame:CGRectMakeのサイズ指定やUIViewContentModeCenterの使い方が分からない状況です。
  • 調べてみましたが解決できず、知恵をお借りしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

No.1です。 > 表示したいサイズwidthを100、heightを100をどのようにしてしていすればよいのでしょうか? もともとの質問には UIView *uv = [[UIView alloc] initWithFrame:CGRectMake(0,0,100,100)]; と書いてあるのに、 なんでNo.1補足は UIView *uv = [[UIView alloc] init]; に変えたんですか? initWithFrameに指定したCGRectMake(0,0,100,100)の 意味すらわかってないということでしょうか?

dkong
質問者

お礼

ありがとうございます。initWithFrameに指定したCGRectMake(0,0,100,100)とすると0,0の位置に表示されてしまい、サイズだけを指定してUIViewを生成してから位置を指定するのかと思っていました。また、よろしくお願いします。

その他の回答 (1)

回答No.1

> 中央に表示させるのにuv.contentMode = UIViewContentModeCenter;としたのですが、使い方が間違っているのでしょうか? このcontentModeの使い方が違います。 contentModeというのはviewの配置位置を指定するものではなく、 viewの中にあるコンテンツ(UIImageViewの画像とか)をどう表示するか (viewいっぱいに拡大して表示するとか、viewの中央に表示するとか) の指定です。単純な赤い背景色だけのviewに指定しても無意味です。 UIImageView等のコンテンツを持つ派生クラスで使って初めて意味があります。 今回は、その赤い背景色だけのviewを親のviewの中央に表示させたい ということだと思いますので、 CGSize viewSize = self.view.bounds.size; uv.center = CGPointMake(viewSize.width/2, viewSize.height/2); とすれば中央に表示されると思います。 中央位置ならcenterに代入するだけで指定できますが、 それだけで済むことはあまりないので、viewの配置を指定するには 基本的にはframeプロパティで位置とサイズの両方を指定するものと 考えておいた方がよいです。

dkong
質問者

お礼

早速の対応。ありがとうございます。もう少し質問よろしくお願いします。

dkong
質問者

補足

UIView *uv = [[UIView alloc] init]; CGSize viewSize = self.view.bounds.size; uv.center = CGPointMake(viewSize.width/2, viewSize.height/2); としたのですが、だめでした。表示したいサイズwidthを100、heightを100をどのようにしてしていすればよいのでしょうか?基本的な部分がよくわかってなくてすみません。教えてください。

関連するQ&A