iOS 在 iPhone 6 及更高版本上设置导航项标题视图框架故障
Posted
技术标签:
【中文标题】iOS 在 iPhone 6 及更高版本上设置导航项标题视图框架故障【英文标题】:iOS Setting navigation item title view frame glitches on iPhone 6 and up 【发布时间】:2015-11-06 05:52:13 【问题描述】:我将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 及更高版本,frame
的 origin
受到尊重,标题按钮最终位于左上角。解决这个问题很容易,但我不知道为什么苹果决定突然改变这样的事情。
你们认为这可能是一个错误还是一个变化?
【问题讨论】:
【参考方案1】: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);
将您的代码更改为此,这将使标题进入按钮中间。您可以相应地更改您的按钮框架
【讨论】:
以上是关于iOS 在 iPhone 6 及更高版本上设置导航项标题视图框架故障的主要内容,如果未能解决你的问题,请参考以下文章
为啥 iPhone 6 及更高版本的 wkwebview 不接受底部的点击?
iPhone iOS8:从 iOS7.1 sdk 构建并在 8.0 及更高版本的设备上运行时,UIAlertView 倒置旋转无法正常工作