在横向中将视图置于其父级中心

时间:2013-01-15 07:39:00

标签: objective-c

我搜索并发现了一些关于此的问题,但没有一个问题包含对我有用的答案。

如果设备是纵向的,则此代码将当前视图中的子视图居中,但如果是横向则不是。如何在景观中进行定心工作?

UIView *redView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 200, 200)];
redView.backgroundColor = [UIColor redColor];
redView.center = [self.view convertPoint:self.view.center fromView:self.view.superview];
[self.view addSubview:redView];

1 个答案:

答案 0 :(得分:1)

而是尝试使用

 redView.center = [self.view convertPoint:self.view.center fromView:nil];

适合我。

来自文档的说明:

  

坐标系中带点的视图。如果视图为零,则为此   而是从窗口基坐标转换。否则,两者都有   视图和接收器必须属于同一个UIWindow对象

(应在viewDidAppear中调用,而不是在viewDidLoad中调用)