I am inserting label in UIButton using addSubView
Here the label’s value will be change every time.
UILabel *backTopLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 30, 448, 66)];
backTopLabel.backgroundColor = [UIColor clearColor];
backTopLabel.textColor = [UIColor whiteColor];
backTopLabel.font = [UIFont fontWithName:@"Georgia" size:56];
backTopLabel.textAlignment = UITextAlignmentCenter;
backTopLabel.text = [[selectedUsers objectAtIndex:userIndex] valueForKey:@"FirstName"]; // UserIndex will be change and new data will be load in the label
[btnBackLeftCard addSubview:backTopLabel]; // btnBackLeftCard is the UIButton
[backTopLabel release];
The Problem is : It successfully changes the label value but it is over writing it.
I am getting the new label value over the old label value.
How can I solve this ?
Every time you call
[[UILabel alloc] initWithFrame:CGRectMake(0, 30, 448, 66)]you are creating new memory, not accessing the existing memory.So, you need to have something like
so that you only create the memory if it doesn’t exist.
However since your label isn’t a property, you’re essentially losing access to it anyway.
So you either need to add the label as a property of the class you’re in OR tag the view so you can find it again & remove it.
Tag it & find again like this: