2011-10-05 5 views
18

chcę uzyskać atrybuty etykiecie jest od siebie tak próbowałem:ios uzyskać etykietę z numerem znacznika

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

Ale wszystko, co mam był pusty UILabel zamiast etykieta szukałem. Jaki jest prawidłowy sposób na zrobienie tego.

+0

W jaki sposób ustawiłeś znacznik i czy etykietujesz jedyny widok, który jest wyeksponowany (lub w dalszej części drzewa) 'self' ze znacznikiem' 1'? –

+0

Ustawiam znacznik jak [etykieta setTag: 1]; w innej funkcji. Etykieta nie znajduje się w górnym podzakresie, ale jest w widoku z góry. –

+0

Musisz wyliczyć "self subsviews", aby uzyskać żądaną etykietę. Twoja próba nie zadziała. –

Odpowiedz

36

Więc zorientowałem się, co robię źle. Oczywiście

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

tworzy wskaźnik do instancji mojej etykiety z tagiem 1. To faktycznie działa. To, co nie działa i dlaczego miałem problemy, pochodziło z próby wydania etykiety. Zwolnienie etykiety jest tym samym, co wydanie [self viewWithTag: 1], co nie jest tym, co próbowałem zrobić.

0

Dla Swift 3, kiedy jestem w kontrolerze widoku, muszę zadzwonić ten kod, aby pobrać widok etykiet:

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

W Objective C dla coraz UILabel w UIViewController przez tag.

tutaj biorę założenie jako swoją UILabel dodaje na self.view, w przeciwnym razie można przekazać swój pogląd w którym dodany UILabel jak [yourview viewWithTag:1];

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

W UITableView

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

komórce jest przedmiotem UITableViewCell jako

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

W Swift 3

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

W UITableView

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

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

UWAGA: Przed użyciem znacznika (viewWithTag) nie powinno być przedmiotem (UILabel) z tej liczby zmiennych, w przeciwnym razie aplikacja jest ruina .

można ustawić znacznik dla dowolnego obiektu poprzez scenorys lub przez XIB i programowo.

+0

Dzięki za odpowiedź w Swift 3, był dla mnie przydatny. –