我将-f
添加为UILabel
作为titleView
。标签的宽度是屏幕的宽度,原点是CGZero。添加左右栏项后,self.navigationItem.titleView
的原点和宽度相对于屏幕发生变化。我必须在宽度相同的UILabel
下面直接放置一些东西,但是当我使用UILabel
或convertRect
时,我得到了我为帧设置的原始值,这个值相对于在屏幕上看到。
获取屏幕上显示的convertPoint
新框架价值的正确方法是什么
答案 0 :(得分:0)
问题是我过早地查询标题视图的大小,因为在运行循环的下一次传递之前不会计算子视图的大小,我在主视图中解决了这个问题
navBar.layoutIfNeeded()
var titleViewFrameInTopLevelViewSpace:CGRect = self.navigationItem.titleView!.convertRect(self.navigationItem.titleView!.bounds, toView: self.view)
println(titleViewFrameInTopLevelViewSpace)
谢谢@ rob-mayoff