0
* 주석으로 언급 된 라인은 모든 제약 조건에 바인딩되지 않은 하위 뷰를 상위 뷰로 확장하고 있습니다.높이 제한 증가, "런타임에 추가 된 하위 뷰"
NSMutableArray* tagItemLabels=[NSMutableArray new];
NSMutableArray* data = [NSMutableArray arrayWithObjects:@"One",@"One Hundred",@"One Hundred Eleven",@"Thousand One Hundered",@"two",@"Three", nil];
for (NSString* title in data) {
MSTag * tagItem=[[[NSBundle mainBundle] loadNibNamed:@"MSTag" owner:self options:kNilOptions] objectAtIndex:0];
[tagItem.lblTitle setText:title];
[self.tagView addSubview:tagItem];
CGRect frame = tagItem.frame;
//frame.size.height=30;
CGSize expectedLabelSize = [title sizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14]}];
if (tagItemLabels.count<=0) {
frame.origin.x=8;
frame.origin.y=8;
frame.size.width=expectedLabelSize.width+70;
frame.size.height=30;
}else{
frame=((UIView*)([tagItemLabels lastObject])).frame;
frame.origin.x+=frame.size.width+12;
frame.size.height=30;
frame.size.width=expectedLabelSize.width+70;
NSLog(@"%f==%f",frame.origin.x+tagItem.frame.size.width+12,self.tagView.frame.size.width);
if (frame.origin.x+frame.size.width>self.tagView.frame.size.width) {
//if (frame.origin.x+frame.size.width>self.TagView.frame.size.width) {
frame.origin.x=8;
frame.origin.y+=frame.size.height+8;
}
}
//***If I write this line my views get streched!***//
self.constraintTagViewHeight.constant=frame.origin.y+frame.size.height;
[tagItem setFrame:frame];
[tagItemLabels addObject:tagItem];
}
여기에서 달성하려는 것은 무엇입니까? 당신이 여기에서 묻고있는 것이 명백하지 않습니다 ... 분홍색으로 된보기가 커져서 모든 레이블이 그 안에 들어 있기를 원하십니까 (3 개의 레이블보다 약간 큼)? – Ladislav
예, 분홍색은이 모든 tagView의 상위보기입니다. 나는 하나의 선택 아래에 다른 부모보기를 추가해야하며이 모든 부모보기는 스크롤보기로 표시됩니다. 먼저 tableView를 사용하여이 모든 작업을 시도하고 다른 프로토 타입 셀을 만들고 행 높이 자동 치수를 지정합니다. 그러나 셀에서도 같은 일이 발생하며 테이블 뷰의 셀을 시작 및 끝내기 호출 후 셀 높이를 높이면 셀의 항목 제약이 증가합니다. 태그 높이도 증가합니다. 제목과 십자가 btn은 태그의 가운데 맞춤입니다. 위/아래 제약이 없습니다. –
'MSTag * tagItem = [[[NSBundle mainBundle] loadNibNamed : @ "MSTag"소유자 : 자체 옵션 : kNilOptions] objectAtIndex : 0];'아래에'tagItem.autoresizingMask = UIViewAutoresizingNone'을 추가 해보세요 XIB 파일에 자동 마스크가 있습니다 유연한 높이이므로 superview의 높이가 바뀌면 태그 높이가 높아집니다. – Ladislav