質問

現在の iPhone アプリには、コードによって入力されるトップ リスト ビューがあります。Interface Builder を使用してビューを組み立てたので、多くのものが含まれています UILabels.

明らかに、私はそうしたくありません name1, name2, 、など。私のクラスにはアウトレットがありますが、 name[10] 配列。

そうすることで、各項目を適切なラベル (またはビューなどの他のインターフェイス ビルダー) に接続することは可能ですか?

役に立ちましたか?

解決

あなたはIBでそれを行うことはできませんが、あなたはinitメソッドで配列を作成し、そこにすべてのあなたのラベルを追加することができます。

ところで、あなたは、各ラベルにいくつかのタグを設定し、それをアクセスするためのマクロを定義することができます。

のようななめらか
#define NAME[TAG] (UILabel*)[self.view viewWithTag:TAG]

他のヒント

あなたはもちろん、インターフェイスビルダーでこれを行うことができ、キーワードがIBOutletCollectionです。何それがないと、複数のインターフェイスビルダー店の外には基本的にNSArrayです。

IBOutletCollection(UILabel) NSArray *myLabels;

だから、次のことがインターフェイスビルダーにラベルを結ぶことになると、あなたは、実行時にすべてのラベルにアクセスするために、配列を使用することができます。

これは、この関連する質問する を参照して、コンセントのコレクションを使用して行うことができます。

次の手順に従ってアウトレットの配列を作成し、それを IB 要素に接続します (これは例です) UIView, 、使用できます UILabel また):

  • IBOutlet の配列を作成する
  • Storyboard ViewController インターフェイスに複数の UIElement (ビュー) を追加します。
  • ViewController (ストーリーボード内) を選択し、接続インスペクターを開きます
  • 接続インスペクターには「アウトレットコレクション」オプションがあります(そこにアウトレットの配列が表示されます)
  • if をインターフェイス要素に接続します

-

class ViewController2: UIViewController {


    @IBOutlet var collection:[UIView]!


    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

enter image description here

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top