web-dev-qa-db-ja.com

swiftを使用してサブビューを表示および/または非表示にするにはどうすればよいですか

そこで、ストーリーボードに3つのサブビューを持つViewControlを作成しました。それぞれは、前の画面(NavControl)で選択されたテーブル行に応じて、表示する異なるビューを表します。属性インスペクターの「hidden」属性がチェックされていることにより、すべてのサブビューが非表示になっています。これらの各ビュー内のすべてのオブジェクトは非表示ではありませんが、サブビュー自体が(明らかに)非表示になっているため非表示になっています。私は3つのサブビューのそれぞれにタグ(0、1、2)を与えたタグ属性を使用できると考えていますが、その使用方法を理解できません(これがオプションを提供するために役立つ場合に備えて)これを行う方法のここで言及したかった)。

それでは、これらのサブビューをどのように表示してから非表示にするのでしょうか?サブビュー内の各オブジェクトを調べて、その隠しプロパティをtrue/falseに切り替えたくありません。サブビュー全体を「表示/非表示」できるようにしたいのです。したがって、同じ結果を達成できますが、はるかに簡潔です。

ウェブ検索やstackoverflow検索で私に役立つものは何も見つかりません。

私のコードはとてもシンプルです。前の画面で選択された行をキャプチャし、サブビューを含む詳細画面の変数に渡します。詳細画面のviewDidLoad関数でprintln()を設定したため、これが機能していることはわかっています。だから今私がしなければならないのは、これらの条件のそれぞれに行き、どのサブビューを表示および/または非表示にするかを伝えることです。

このコミュニティのすべての助けに感謝します!私はそれなしで失われます。

27
jammyman34

3つのサブビューのそれぞれに対してIBOutletsを作成する必要があります。次に、それらの参照からそれらを直接表示/非表示できます。ビューを非表示にすると、そのサブビューが自動的に非表示になります。

ビューのアウトレットを作成したら、これを行うことができます:viewYouWantToHide.isHidden = true

24
AdamPro13

これを使用して、Swiftでビューを非表示にします

viewVar.isHidden = true
54
iHulk

各ビューにタグがある場合、次を使用してタグを非表示および表示できます。

目的C

非表示の場合:

[[self.view viewWithTag:1] setHidden:YES];

表示中:

[[self.view viewWithTag:1] setHidden:NO];

In Swift:

隠蔽:

self.view.viewWithTag(1)?.isHidden = true

表示中:

self.view.viewWithTag(1)?.isHidden = false

注:置換1タグ値。

22
Midhun MP

ただし、isHiddenという事実はステータスをチェックするための命名規則であり、getterメソッドですが、その事実にもかかわらずSwiftではsetterおよびgetterプロパティとして使用します

view.isHidden = true
10
Amr Angry