프로그래밍 방식으로 여러 줄로 된 UILabel을 만들고 UIView에 추가 한 다음 UIView를 뷰 컨트롤러에 추가하여 방향이 바뀌면 제대로 크기가 조정되는 가장 좋은 방법은 무엇입니까?프로그래밍 방식으로 만든 UILabel이 회전 할 때 크기 조정되지 않음
이전에도 비슷한 질문을 여러 번 시도했지만 특정 상황에 대한 해결책을 찾지 못했습니다. 나는 다중 회선 UILabel을 추가하려고하고있다. 필자가 작성한 코드는 레이블을 추가하지만 가로 모드에서는 항상보기의 너비입니다. UILabel이 너무 넓은 경우를 제외하고 iPad를 회전 시키면 예상대로 전체 앱이 회전합니다. 그 답은 .autoresizingMask
또는 .sizeToFit
또는 .autoresizesSubviews
속성에있는 것이 확실하지만 지금까지는 그렇지 않습니다. 여기에 내가, 내가이 .autoresizeMask
뭔가를보고 싶어하지만 지금은 며칠이에 벽에 내 머리를 때리고 있었어요 확신 말했듯이 시점
UIViewController *vc = [[UIViewController alloc] init];
vc.title = @"Welcome";
// tbc is an instance of the tab bar controller that this view will go into
UILabel *copy = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tbc.view.frame.size.width, MAXFLOAT)];
NSString *copyText = @"Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.";
UIFont *copyFont = [UIFont fontWithName:@"HoeflerText-Regular" size:20.0f];
[copy setContentMode:UIViewContentModeScaleAspectFit];
[copy setText:copyText];
[copy setFont:copyFont];
[copy setNumberOfLines:0];
[copy setLineBreakMode:UILineBreakModeWordWrap];
[copy setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleRightMargin];
CGRect frame = copy.frame;
frame.origin.x = 50;
frame.origin.y = 100;
frame.size.width = tbc.view.frame.size.width;
frame.size.height = tbc.view.frame.size.height - 100;
[copy setFrame:frame];
[copy sizeToFit];
UIView *content = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tbc.view.frame.size.width, vc.view.frame.size.height)];
[content setAutoresizesSubviews:YES];
[content addSubview:copy];
[content sizeToFit];
[vc.view setAutoresizesSubviews:YES];
[vc.view setContentMode:UIViewContentModeScaleAspectFit];
[vc.view addSubview:content];
내 코드는 그래서 나는 모든 것을 시도한 것처럼 느낍니다. 모든 제안을 부탁드립니다.
좋은 그레이비, 프레임에 'MAXFLOAT'을 사용 했습니까? – CodaFi
너무 커? ;) –
아니요, 절대적으로 너무 작습니다. 분명히 iOS 기기는 (float) 3.40282346638528860e + 38 픽셀입니다. – CodaFi