当没有任何改变时,我的UIView.bounds怎么会有所不同?

时间:2016-03-04 10:07:17

标签: ios uiview

我正在尝试创建一个圆圈并围绕其中心旋转(see my question about drawing this

所以在我的ViewController中,我有一个func,它在我绘制的UIView中创建了一个轮子myWheel,它使用约束放在View的中心。这在viweDidLoad()

中调用

在那个函数里面我打印了一些值来检查

myWheel.center (270,270) 
myWheel.frame (0,0,540,540)
myWheel.bounds (0,0,540,540) 

最初我试图使用.center值在myWheel视图的中心绘制滚轮,但是当我按下我的按钮调用该功能以围绕其中心旋转滚轮时,它会给出不同的值。在附加到我的@IBAction的函数中添加了旋转:

myWheel.center (161.5,161.5)
myWheel.frame (8,8,307,307) 
myWheel.bounds (0,0,307,307)

我怀疑创作过程中的值是在知道屏幕大小之前 - 但是找不到任何谈论这个的doco。问题是如何在创建过程中确定绘制圆圈所需的中心点?

1 个答案:

答案 0 :(得分:1)

viewDidLoad期间,视图刚加载并且其边界仍未最终确定,您应该检查viewWillappearviewDidAppearviewWillLayoutSubViews方法中的最终边界

但是在你的情况下,我相信你添加为子视图的myWheel视图设置了约束,以便视图的边界随着父视图的变化而变化。例如,设置尾随空格,前导空格w.r.t parent。

如果要在中心绘制圆,可以设置中心x,y约束以及myWheel视图所需的高度,宽度约束。