Я учусь обрабатывать подпредставления, и мне трудно манипулировать положением одного из них. Каждое подпредставление имеет уникальный тег. Стоит отметить, что я ищу подпредставления в UITableCell, UITableView имеет около 5 строк.
Если я сделаю это:
UIView *mike = [self.view viewWithTag:6];
mike.frame = CGRectMake(250, 5, 25, 20);
mike.backgroundColor = [UIColor redColor];
NSLog(@"mike=%@ tag=%d",[[mike class] description], [mike tag]);
or:
UILabel *label = (UILabel *)[self.view viewWithTag:6];
label.frame = CGRectMake(250, 5, 25, 20);
label.backgroundColor = [UIColor redColor];
NSLog(@"label=%@ tag=%d",[label text], [label tag]);
подвид не меняет положение, однако, если я ищу его, используя приведенный ниже код, он работает.
for (UIView *subview0 in [self.view subviews])
{
for (UIView *subview1 in [subview0 subviews])
{
for (UIView *subview2 in [subview1 subviews])
{
if ([[[subview2 class] description] isEqualToString: @"UILabel"])
{
[subview2 setText:@"mike"];
subview2.frame = CGRectMake(250, 5, 25, 20);
subview2.backgroundColor = [UIColor redColor];
}
}
}
}
Любая помощь очень ценится.
Майк
РЕДАКТИРОВАТЬ: из консоли при выполнении
2011-03-10 19:53:42.344 mike=UILabel tag=6 0x4b59610
2011-03-10 19:53:42.344 label=842 tag=6 0x4b59610
2011-03-10 19:53:42.345 0-subview=PerformAnalysisCustomCell tag=0
2011-03-10 19:53:42.345 1-subview=UIGroupTableViewCellBackground tag=0
2011-03- 10 19:53:42.346 2-subview=UIView tag=0 0x4d62910
10.03.2011 19:53:42.349 1-subview=UIViewCellContentView tag=0
2011-03-10 19:53:42.349 2 -subview=UILabel tag=0 0x4b51320
2011-03-10 19:53:42.350 2-subview=UILabel tag=1 0x4b59290
2011-03-10 19:53:42.350 2-subview=UILabel tag= 2 0x4b59370
10 марта 2011 г., 19:53:42.358 -03-10 19:53:42.360 2-subview=UILabel tag=5 0x4b59560
2011-03-10 19:53:42.360 2-subview=UILabel tag=6 0x4b59610
После помещения %p в NSLog адрес адреса памяти будет таким же. Другие строки с тегом = 6 имеют разные адреса, поэтому я должен ожидать, что по крайней мере эта ячейка переместится.