iOS在iPhone 6及更高版本上设置导航项目标题视图框架故障

时间:2015-11-06 05:52:14

标签: ios objective-c iphone uinavigationitem titleview

我对UIButton使用了navigation item title view,按钮的宽度可能会发生变化,所以我设置的框架如下所示:

CGFloat titleButtonTextWidth = [title sizeWithAttributes:@{NSFontAttributeName:FontMedium(14)}].width;
CGFloat buttonWidth = MAX(titleButtonTextWidth, SCREEN_WIDTH/3.f);

self.titleButton.frame = CGRectMake(0, 0, buttonWidth, 30);

在iPhone 5s及更低版本上,标题按钮位于中间位置,但对于iPhone 6及更高版本,origin的{​​{1}}受到尊重,标题按钮最终位于左上角角。解决这个很容易,但我不知道为什么Apple决定突然改变这样的事情。

你们认为这可能是一个错误或改变吗?

1 个答案:

答案 0 :(得分:0)

CGFloat titleButtonTextWidth = [title sizeWithAttributes:@{NSFontAttributeName:FontMedium(14)}].width;
CGFloat buttonWidth = MAX(titleButtonTextWidth, SCREEN_WIDTH/3.f);

self.titleButton.frame = CGRectMake(0, 0, buttonWidth, 30);
self.titleButton.titleLabel.frame = CGRectMake(0, 0, buttonWidth, 30);

将代码更改为此,这将使标题位于按钮中间。您可以相应地更改按钮框