问题描述
- UINavigationBar长文本问题
-
我要导航栏能自动调整,这样可以根据标题长短显示。我用下面的代码但是还是会被截断。- (void) viewDidLoad { UILabel* titleLabel = [[UILabel alloc] init]; titleLabel.font = [UIFont boldSystemFontOfSize:16.0]; titleLabel.text = @"abcdefghijklmnopqrstuvwxyz"; if ([titleLabel respondsToSelector:@selector(setMinimumScaleFactor:)]) { titleLabel.minimumScaleFactor = 0.1; } else { titleLabel.minimumFontSize = 1.0; } [titleLabel sizeToFit]; self.navigationItem.titleView = titleLabel; }
解决方案
你要设置好标签让它能自动调整:
titleLabel.adjustsFontSizeToFitWidth = YES;
解决方案二:
设置UILabel 超出所允许的宽度后换行.添加下面的代码
titleLabel.frame=CGRectMake(0,0,300,21);
titleLabel.numberOfLines=0;
titleLabel.lineBreakMode=UILineBreakModeWordWrap;
这样titleLabel 当宽度超出300时会换行显示,这时还需要更新titleLabel的高度
CGSize titleSize=[titleLabel.text sizeWithFont:titleLabel.font constrainedToSize:CGSizeMake(300,100) lineBreakMode:UILineBreakModeWordWrap];
titleLabel.frame=CGRectMake(0,0,titleSize.width,titleSize.height);
时间: 2024-12-24 20:50:48