2 loveiflower loveiflower 于 2013.06.26 10:18 提问

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;
}

CSDN移动问答

2个回答

love_loveec
love_loveec   2013.06.26 15:45
已采纳

你要设置好标签让它能自动调整:

titleLabel.adjustsFontSizeToFitWidth = YES;
zhanglei5415
zhanglei5415   Rxr 2013.06.26 11:28

设置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);
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!