하위 뷰를 처리하는 방법을 배우고 그 중 하나의 위치를 쉽게 조작하지 못하고 있습니다. 각 하위보기에는 고유 한 태그가 있습니다. UITableCell에서 하위 뷰를 검색 중이므로 UITableView에는 약 5 개의 행이 있습니다.UIView 하위보기가 변경에 응답하지 않습니다.
나도이 할 경우
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];
}
}
}
}
도움을 주시면 감사하겠습니다.
마이크
EDIT : 53 :
2011-03-10 19에 실행 콘솔 마이크 = 42.344 UILabel의 태그 = 6 0x4b59610
2011-03-10 19 : 53 : 42.344 라벨 태그 = 842 = 6 0x4b59610
2011-03-10 19 : 53 : 42.345 0 하위 뷰 = PerformAnalysisCustomCell 태그 = 0
2011-03-10 19 : 53 : 42.345 1 서브 뷰 = UIGroupTableViewCellBackground 태그 = 0
2011-03-10 19 : 53 : 42.346 2-subview = UIView tag = 0 0x4d62910
2011-03-10 19 : 53 : 42.349 1-subview = UITableViewCellContentView tag = 0
2011-03-10 19:53 : 42.349 2-subview = UILabel 태그 = 0 0x4b51320
2011-03-10 19 : 53 : 42.350 2-subview = UILabel 태그 = 1 0x4b59290
2011-03-10 19 : 53 : 42.350 2-subview = UILabel 태그 53 : 2 = 0x4b59370
2011-03-10 19 42.358 2- 하위 뷰 = UILabel의 태그 = 3 0x4b59410
2011-03-10 19 : 53 : 42.359 2 서브 뷰 = UILabel의 태그 = 4 0x4b594b0
2011-03 -10 19 : 53 : 42.360 2-subview = UILabel 태그 = 5 0x4b59560
2011-03-10 19 : 53 : 42.360 2-subview = UILabel tag = 6 0x4b59610
NSLog에 % p를 입력하면 메모리 주소 주소가 동일 할 수 있습니다. 다른 태그 = 6 라인은 다른 주소를 가지므로 적어도 그 셀은 움직일 것으로 예상해야합니다.
self.view는 tableView입니까? 모든 표 셀에서도 태그가 고유합니까? 라벨에 태그를 어디에 설정하고 있습니까? – GendoIkari
예. 각 태그는 셀에 고유하지만 표 셀이 반복 될 때 전체 표가 아닙니다. IB에서 태그를 설정하고 있습니다. – hydev
아 ... 그러면 전체 tableView가 아니라 단지 1 개의 셀에서 viewWithTag를 수행해야합니다. tableView에서 viewWithTag를 수행하면 해당 레이블의 첫 번째 인스턴스 만 가져옵니다. – GendoIkari