Pergunta

Eu tenho uma visualização da lista superior no meu aplicativo atual do iPhone, que é preenchido por código. Eu montei a vista usando o interface construtor, então ele contém muito UILabels.

Obviamente eu não gostaria de ter name1, name2, etc. saídas na minha classe, mas prefira um name[10] variedade.

É possível fazê -lo e conectar cada item ao rótulo apropriado (ou qualquer outro construtor de interface como visualização)?

Foi útil?

Solução

você não pode fazer isso no ib, mas pode criar uma matriz em seu init Método e adicione todos os seus rótulos a ele.

BTW, você pode definir alguma tag para cada etiqueta e definir macro para acessá -la. smth como

#define NAME[TAG] (UILabel*)[self.view viewWithTag:TAG]

Outras dicas

É claro que você pode fazer isso com o Builder de Interface, a palavra -chave é IBOutletCollection. O que ele faz é basicamente um NSARRAY de vários pontos de venda do Builder de Interface.

IBOutletCollection(UILabel) NSArray *myLabels;

Portanto, a próxima coisa seria conectar seus rótulos no interface Builder e, em seguida, você pode usar a matriz para acessar todos os rótulos em tempo de execução.

Isso pode ser feito usando coleções de saída, veja esta pergunta relacionada.

Siga estas etapas para criar uma variedade de pontos de venda e conectá -la com elementos ib (aqui está o exemplo de UIView, você pode usar UILabel também):

  • Crie uma variedade de iboutlets
  • Adicione vários uiellements (visualizações) na sua interface Storyboard ViewController
  • Selecione ViewController (em Storyboard) e Open Connection Inspetor
  • Há opções 'Coleções de saída' no Inspetor de conexão (você verá uma variedade de pontos de venda lá)
  • Conecte -se se com os elementos da interface

-

class ViewController2: UIViewController {


    @IBOutlet var collection:[UIView]!


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

enter image description here

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top