我只想获取UIViewController中包含的UIView iVar的框架坐标。例如,如果but0是IVAR,这FCN从视图控制器viewDidLoad方法称为:如何在UIViewController中获取UIView的框架坐标?
CGFloat x = self.but0.frame.origin.x;
这总是返回0,不管其中按钮被置于与界面生成器。我错过了什么?
我只想获取UIViewController中包含的UIView iVar的框架坐标。例如,如果but0是IVAR,这FCN从视图控制器viewDidLoad方法称为:如何在UIViewController中获取UIView的框架坐标?
CGFloat x = self.but0.frame.origin.x;
这总是返回0,不管其中按钮被置于与界面生成器。我错过了什么?
ViewDidLoad加载视图,但框架/边界尚未设置。 ViewDidAppear保证在框架/界限设置后发生。使用该方法。
完美,谢谢。 – jmac1163 2013-02-19 14:20:49
如果这是正确的答案,请标记为正确。谢谢 – Spectravideo328 2013-02-19 14:21:33
编辑: Spectravideo328是正确的,你应该使用viewWillAppear
或viewDidAppear
。
您可以尝试转换来自UIView的框架。
喜欢的东西:
CGRect frame = [self.view convertRect:btn.frame fromView:tableView.frame];
我原来的电话,但在'viewDidAppear'做了解决这个问题。那么为什么这样工作? – jmac1163 2013-02-19 13:59:56
你确定你的'but0'出口迷上了界面生成器按钮? – Tim 2013-02-15 21:37:36
在UIViewController的'viewDidAppear'方法中尝试一下。 – Jeremy 2013-02-15 21:42:25
是的,我确定'but0'已经连接到了IB。我也尝试在'viewDidAppear'和'viewWillAppear'中打电话。 'viewDidAppear'工作!但为什么? – jmac1163 2013-02-19 14:20:24