2016-09-02 3 views
4

Мне было интересно, можно ли получить имя UILabel (а не текст).Можем ли мы получить имя UILabel?

Что-то вроде этого:

if([label.name is equalToString:key]){ 
    //do something 
} 

Я знаю label.name не существует, но, может быть, есть что-то эквивалент. Как я могу это сделать?

+4

Вы можете подклассифицировать UILabel и добавить его. Вы можете продлить его. Или вы можете использовать свойство тега, которое возвращает Int. – WMios

+0

Пожалуйста, проверьте ответ на этот вопрос: http://stackoverflow.com/questions/3958852/how-to-access-object-id-identity-attribute –

+0

ty !! свойство тега отлично – miDark

ответ

3

Вы можете создать подкласс UILabel:

// Objective-C 

#import <UIKit/UIKit.h> 

@interface NMLabel : UILabel 

@property (nonatomic, readwrite) NSString *name; 

@end 


// Swift 
import UIKit 

class NMLabel : UILabel { 

    var name : String = "" 

} 

Или на самом начальном уровне, которые можно использовать уже существующий tag свойство (как в Objective-C или Swift):

label.tag = 5 

// Objective-C 

NSLog(@"%d", label.tag); // prints 5 

// Swift 

print(label.tag) // prints 5 
+0

его быстрый, я думаю? – miDark

+0

Да, это Свифт. Не уверен, что вы можете использовать расширения в Objective-C, но будут работать как подклассы UILabel, так и теги. – WMios

+0

ty !! Я использую тег, его возвращение int, и мне нужно – miDark

Смежные вопросы