我搜索并发现了一些关于此的问题,但没有一个问题包含对我有用的答案。
如果设备是纵向的,则此代码将当前视图中的子视图居中,但如果是横向则不是。如何在景观中进行定心工作?
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];
答案 0 :(得分:1)
而是尝试使用
redView.center = [self.view convertPoint:self.view.center fromView:nil];
适合我。
来自文档的说明:
坐标系中带点的视图。如果视图为零,则为此 而是从窗口基坐标转换。否则,两者都有 视图和接收器必须属于同一个UIWindow对象
(应在viewDidAppear中调用,而不是在viewDidLoad中调用)