2011-10-05 21 views
18

quiero conseguir los atributos de una etiqueta del auto lo que he intentado:ios reciben la etiqueta de número de la etiqueta

UILabel *label = (UILabel *)[self viewWithTag:1]; 

Pero todo lo que tengo es un UILabel vacía en lugar de la etiqueta que estaba buscando. ¿Cuál es la forma correcta de hacer esto?

+0

¿Cómo configuró la etiqueta y la etiqueta es la única vista que es la subvista (o más abajo en el árbol) de 'self' con la etiqueta' 1'? –

+0

Configuré la etiqueta como [label setTag: 1]; en otra función. La etiqueta no se encuentra en la subvista superior, pero está en la vista superior –

+0

. Debe enumerar las "autoevaluaciones" para obtener la etiqueta que desea. Tu intento no funcionará –

Respuesta

36

Así que me di cuenta de lo que estaba haciendo mal. Obviamente

UILabel *label = (UILabel *)[self viewWithTag:1]; 

crea un puntero a la instancia de mi etiqueta con la etiqueta 1. Esto realmente funciona. Lo que no funciona y por qué tuve problemas vino de intentar liberar la etiqueta . Liberar la etiqueta es lo mismo que liberar [self viewWithTag: 1] que no es lo que estaba tratando de hacer.

0

Para Swift 3, cuando estoy en un controlador de vista, tengo que llamar a este código para recuperar una vista por etiqueta:

self.mInstructionView = self.view.viewWithTag(1) 
2

En Objective C para conseguir UILabel en UIViewController por etiqueta.

aquí tomo supuesto de que se añade a su UILabel en self.view, de lo contrario puede pasar su punto de vista en el que añadió UILabel como [yourview viewWithTag:1];

UILabel *label = (UILabel *)[self.view viewWithTag:1]; 

En UITableView

UILabel *label = (UILabel *)[cell viewWithTag:1]; 

celular es un objeto de UITableViewCell como

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"]; 

En Swift 3

let label:UILabel = self.view.viewWithTag(1) as! UILabel 

En UITableView

let cell:UITableViewCell = self.tableView.dequeueReusableCell(withIdentifier: "Cell") as UITableViewCell! 

let label:UILabel = cell.viewWithTag(1) as! UILabel 

NOTA: antes de usar la etiqueta (viewWithTag) no debería haber objeto (UILabel) con ese número de la etiqueta, de lo contrario aplicación es accidente .

puede establecer la etiqueta para cualquier objeto a través del guión gráfico o mediante XIB y programáticamente.

+0

Gracias por la respuesta en Swift 3, fue útil para mí. –

Cuestiones relacionadas