1

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

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

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];
4

1 回答 1

1

而是尝试使用

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

为我工作。

来自文档的注释:

在其坐标系中具有点的视图。如果 view 为 nil,则此方法改为从窗口基坐标转换。否则,视图和接收者必须属于同一个 UIWindow 对象

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

于 2013-01-15T07:55:47.943 回答