Я учусь обращаться с подпредставлениями, и мне трудно манипулировать позицией одного из них. Каждое подпредставление имеет уникальный тег. Стоит отметить, что я ищу подпредставления в 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]);
или
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];
}
}
}
}
Любая помощь с благодарностью.
Mike
РЕДАКТИРОВАТЬ: с консоли на исполнение
2011-03-10 19: 53: 42,344 mike = метка UILabel = 6 0x4b59610
2011-03-10 19: 53: 42,344 метка = 842 метка = 6 0x4b59610
2011-03-10 19: 53: 42.345 0-subview = тег PerformAnalysisCustomCell = 0
2011-03-10 19: 53: 42.345 1-subview = тег UIGroupTableViewCellBackground = 0
2011-03-10 19: 53: 42.346 2-subview = тег UIView = 0 0x4d62910
2011-03-10 19: 53: 42.349 1-подпредставление = тег UITableViewCellContentView = 0
2011-03-10 19: 53: 42.349 2-subview = UILabel tag = 0 0x4b51320
2011-03-10 19: 53: 42.350 2-subview = тег UILabel = 1 0x4b59290
2011-03-10 19: 53: 42.350 2-subview = тег UILabel = 2 0x4b59370
2011-03-10 19: 53: 42.358 2-subview = UILabel tag = 3 0x4b59410
2011-03-10 19: 53: 42.359 2-subview = UILabel tag = 4 0x4b594b0
2011-03-10 19: 53: 42.360 2-подпредставление = тег UILabel = 5 0x4b59560
2011-03-10 19: 53: 42.360 2-подпредставление = тег UILabel = 6 0x4b59610
После помещения% p в NSLog вы можете указать адрес памяти такой же. Другие строки tag = 6 имеют разные адреса, поэтому я должен ожидать, что хотя бы эта ячейка переместится.