Usando Interface Builder para UITableViews
-
02-07-2019 - |
Pergunta
Eu sou muito cedo no processo de aprendizagem de desenvolvimento do iPhone. Eu estou tentando obter minha cabeça em torno de várias peças. Agora Acabei de tomar o modelo básico NavigationController e eu estou tentando criar um simples agrupados exibição de tabela com um par de campos de texto. O que eu não consigo fazer é obter Interface Builder para permitir-me para soltar um UITableViewCell em um UITableView para que eu possa, em seguida, adicionar um campo de texto para o celular. É isto mesmo possível (parece que o seu suposto ser dado o fato de que UITableViewCell é um controle draggable)?
Se não, que isso tudo significa de que é código que precisará apenas me escrever?
Solução
Você pode criar a célula com Interface Builder, mas você tem que torná-lo um objeto de nível superior, em vez de uma criança da exibição de tabela. Em seguida, você pode retornar esta célula em tableView do seu controlador de exibição: cellForRowAtIndexPath:. Função
Certifique-se de dar a célula um identificador no Interface Builder e, em seguida, usar o mesmo identificador com dequeueReusableCellWithIdentifier: (veja o código de exemplo de como isso funciona - a idéia é que as células se re-utilizado -.. o oS só vai alocar tantas células como se encaixam na tela ao mesmo tempo inteligente maneira de poupar memória)
Outras dicas
Tenha cuidado com o método de arranque para a Diretoria. Você vai vazar se você não lidar adequadamente com o seu IBOutlets
. Vou tentar explicar isso para o melhor da minha capacidade, sem código de postagem (NDA). Se você planeja usar o IB para criar o seu celular, fazer a UITableViewCell
é lima Xib própria. Defina o dono do arquivo como sua subclasse UIViewController
(ou UITableController
). Chame o IBOutlet
algo como UITableViewCell *cellFactory
. No UITableViewDataSource
método tableView:cellForRowAtIndexPath:
faça o seguinte pseudo-código;
- Tente desenfileirar uma célula utilizando o identificador você configurar em IB
- Se for bem sucedido, o seu feito. Basta usar a célula
- Else você precisa criar uma nova célula. Use o método
[NSBundle mainBundle] loadNibNamed:owner:options:
com o seu arquivo xib adequada lá. Isto irá preencher o ivar cellFactory com uma célula fresco. Aqui vem a parte complicada. - set
cell = cellFactory
soltecellFactory
e defini-lo a zero para ter certeza de que você não acidentalmente usá-lo novamente. Agora você está seguro de usar seu celular como normal
Infelizmente, isso realmente não funciona dessa maneira - as células do tableview são gerados pelo delegado em tempo de execução. Acontece que para ser um código muito simples, no entanto. Confira o código de exemplo tableview, é muito fácil de seguir.
Este é um bom tutorial sobre como usar o UI builder para de UITableView