0

私は iOS でアプリケーションを作成する最初のステップを行っているので、ばかげた質問をしているのかもしれません。View Controller に、いくつかのボタンとテキスト フィールドを配置して、さまざまなアクションを実行します。組織を改善するために、ボタンとテキスト フィールドが配置されている領域を区切るために、境界線のある背景をいくつか配置したいと考えています。テキストと色の背景のないテキスト ラベルを配置して、その上にオブジェクトを移動しようとしましたが、レイヤーがボタンとテキスト フィールドの上に配置される理由がわかりません。次に、テキスト ラベルの不透明度を変更してみましたが、まったく満足のいくものではありません。

label1.layer.cornerRadius = 5.0;
label1.layer.masksToBounds = YES;
label1.layer.borderColor = [UIColor lightGrayColor].CGColor;
label1.layer.borderWidth = 1.0;
label1.layer.opacity = 0.1;
label1.layer.backgroundColor = [UIColor whiteColor].CGColor;

これを行うためのより良い方法を見つけたり、コードを改善したりするのに誰かを助けることができますか?

4

3 に答える 3

0

私があなたを正しく理解していれば、...

サブビュー階層の背後にあるロジックと兄弟の描画シーケンスをよく理解してください。インターフェイスビルダー/ストーリーボードでは、次のようにビューを揃えることができます。

   UIView (the default view that is connected to the view controller's view property) 
    \--UIView   (This is a background to group UI Items as buttons or Lables
       \-- UILabel
       \-- UIButton
    \--UIView (the next background) 
       \-- UILabel
       \-- UIButton

座標に関しては、各ビューの座標がそのサブビューを基準にしていることに気付くでしょう。したがって、UILabelとUIButtonの座標は同じである可能性がありますが、それぞれがそのサブビュー内に配置されます。

別のオプションは次のとおりです。

UIView (the default view that is connected to the view controller's view property) 
\--UIView (Background) 
\--UIButton
\--UILable
\--UIView (Background) 
\--UIButton
\--UILable

あるいは

UIView (the default view that is connected to the view controller's view property) 
\--UIView (Background) 
\--UIView (Background) 
\--UIButton
\--UILable
\--UIButton
\--UILable

その場合、すべてのUI要素は同じ座標空間を共有します。その場合、適切なレイアウトに注意する必要があります。

これは機能しません:UIView(ビューコントローラのviewプロパティに接続されているデフォルトのビュー)--UIButton --UILable --UIButton --UILable --UIView(背景)-UIView(背景)すべての座標であってもなどは上記の例と同じですが、2つの背景ビューは、他のUI要素の後に描画されるという理由だけで、他のUI要素を非表示にします。そして最後のものがスペースを獲得します。

于 2013-02-14T11:25:03.870 に答える
0

Interface Builder で複数の UIImageView オブジェクトを配置して、Attributes Inspector から必要に応じて背景を設定し、要素を UIView に配置する方法に注意することができます。下のものは、上のものに続いて描かれています。

于 2013-02-14T11:05:54.453 に答える