2013-07-03 2 views
-1

Я пытаюсь удалить подпрограмму UILabel с помощью этого кода , но этот код удаляет все подпункты с кнопки даже с текущего изображения. Я не понимаю, как я могу указать только UILabel для удаления с кнопки.Как я могу указать конкретный объект для удаления?

if (![[UIImage imageNamed:@"box1.png"] isEqual:button.currentImage]) { 
    [button.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; 
} 
+0

Что вы хотите удалить? Кнопка изображения с box1.png? – Balu

+0

нет, я хочу удалить UIlabel из него – Steve

+0

установить значения тегов и на основании этого удалить ярлык. – Balu

ответ

2

Дело 1: вы добавили ярлык. В этом случае установите его свойство тега и извлеките его с помощью [button viewWithTag:yourLabelTag];

Случай 2: вы хотите удалить «titleLabel» из UIButton (хотя я не могу придумать причину этого). Просто сделайте [button.titleLabel removeFromSuperview];

Случая 3: У вас нет тегов, нет указателя на метку, и вы хотите, чтобы удалить все экземпляры UILabel добавлены к кнопке:

for(int i = 0 ; i < button.subviews.count ; i++) //you could use for(UIView *v in button.subviews) but you shouldn't change the array during this kind of enumeration. 
{ 
    UIView *v = [button.subviews objectAtIndex:i]; 
    if([v isMemberOfClass:[UILabel class]]) 
    { 
     [v removeFromSuperview]; 
     i--; 
    } 
} 

Надеется, что это помогает.

Cheers!

0

Лучший способ устанавливается tag значения для представлений и удалить точку на основе tag значений.