Ios 如何在中心设置多个UIView

Ios 如何在中心设置多个UIView,ios,swift,uiview,cgpoint,Ios,Swift,Uiview,Cgpoint,我已经尝试过这些解决方案: 第一个解决方案 ansview.center = CGPointMake(viewAnswer.frame.size.width / 2, viewAnswer.frame.size.height / 2); ansview.center = CGPointMake(viewAnswer., viewAnswer.height/2) self.ansview.center = CGPointMake(CGRectGetMid

我已经尝试过这些解决方案:
第一个解决方案

ansview.center = CGPointMake(viewAnswer.frame.size.width  / 2,
                viewAnswer.frame.size.height / 2);
    ansview.center = CGPointMake(viewAnswer., viewAnswer.height/2)
self.ansview.center = CGPointMake(CGRectGetMidX(self.viewAnswer.bounds),
                CGRectGetMidY(self.viewAnswer.bounds));
第二种解决方案

ansview.center = CGPointMake(viewAnswer.frame.size.width  / 2,
                viewAnswer.frame.size.height / 2);
    ansview.center = CGPointMake(viewAnswer., viewAnswer.height/2)
self.ansview.center = CGPointMake(CGRectGetMidX(self.viewAnswer.bounds),
                CGRectGetMidY(self.viewAnswer.bounds));

我已经试过这个代码了。但只有一个视图设置为“中心”。如何在中心设置多个视图?

调用viewDidLayoutSubviews以通知视图控制器其视图刚刚布置了其子视图

override func viewDidLayoutSubviews() {
        self.ansview.center = CGPointMake(self.viewAnswer.bounds.size.width / 2, self.viewAnswer.bounds.size.height / 2)
    }

您应该使用
边界
而不是
,因为如果视图具有变换,则
是未定义的。

您也可以尝试此操作

[ansview setCenterX:self.view.centerX];
[ansview setCenterY:self.view.centerY];

不清楚你在问什么。如果将多个视图设置为具有相同的中心点,则它们将相互重叠。这就是你想要的吗?顺便问一下,你把自动布局关掉了吗?默认情况下,它处于启用状态,使用“自动布局”时,您必须使用约束来移动视图,而不是直接更改视图的中心点。您的答案没有多大意义。无法将视图设置为点,编号1。也不能设置“使用视图的边界移动视图”。你必须使用中心点,就像OP所做的那样。您应该使用superview的边界而不是框架来计算视图的新中心,这是对的。@Duncac您完全正确!我犯了一个愚蠢的错误,我已经更新了我的答案。请随时提供反馈。