我有一个创建的 UIView,initWithFrame
它显示得很好,正是我想要的。
为了测试一些触摸交互性,我做了以下事情:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
NSLog(@"center: %f",self.center.x);
}
当我按下视图(以及类似这个视图的其他视图)时,它们都正确地记录了一个有意义的数字,作为它们在视图超级视图的坐标空间中的中心点。
但是,当我在initWithFrame
方法内执行相同的日志语句时,self.center.x
不会报告视图超级视图空间中的坐标。相反,它报告将成为边界中心的点,即如果视图是 100 像素宽,它会报告50
所有视图的 ,。
我不明白的是这些视图没有移动,并且框架在开始时明确设置,initWithFrame
因为它通过了一个框架CGRect
并且视图显示在正确的位置。那么为什么它不能仅以这种方法正确报告其中心呢?