Нет открытого Apple API для глубокого копирования UILabel.Лучше всего сделать вспомогательный метод, который будет копировать все части, которые вас интересуют.
- (UILabel *)deepLabelCopy:(UILabel *)label {
UILabel *duplicateLabel = [[UILabel alloc] initWithFrame:label.frame];
duplicateLabel.text = label.text;
duplicateLabel.textColor = label.textColor;
// etc... anything else which is important to your ULabel
return [duplicateLabel autorelease];
}
Если вы хотите использовать его по всей базе кода, вы можете изменить его на статический метод и поместить его вкакой-то класс полезности.Если бы вы назвали класс LabelUtils
, вы могли бы сделать что-то вроде ...
+ (UILabel *)deepLabelCopy(UILabel *)label {
// ...
}
и вызываться с использованием UILabel *dupLabel = [LabelUtils deepLabelCopy:origLabel];