HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 如何使子视图居中大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在向另一个UIViewController添加一个UIViewController子视图.

它很棒.但我很难尝试将子视图置于父视图的中间.

我读了,我找到了两行代码,但对我来说不起作用.

谁能指出我的问题?

那些是:

popupController.view.center = [self.view convertPoint:self.view.center fromView:self.view.superview];

popupController.view.center = CGPointMake(self.view.bounds.size.width / 2,self.view.bounds.size.height / 2);

父视图控制器代码

- (IBACtion)SELEctRoutIne:(id)sender {
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];

    createRoutInePopupViewController* popupController = [storyboard instantiateViewControllerWithIdentifier:@"createRoutInePopupView"];
   // popupController.view.center = [self.view convertPoint:self.view.center fromView:self.view.superview];
    popupController.view.center = CGPointMake(self.view.bounds.size.width / 2,self.view.bounds.size.height / 2);

    //Tell the operating system the CreateRoutIne view controller
    //is becoming a child:
    [self addChildViewController:popupController];

    //add the target frame to self's view:
    [self.view addSubview:popupController.view];

    //Tell the operating system the view controller has moved:
    [popupController didMoveToParentViewController:self];


}

儿童设置

解决方法

看起来像是在居中后重新定位视图控制器视图.可能在didMoveToParentViewController中:

将居中代码移动到SELEctRoutIne:方法的末尾

- (IBACtion)SELEctRoutIne:(id)sender
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];

    createRoutInePopupViewController* popupController = [storyboard instantiateViewControllerWithIdentifier:@"createRoutInePopupView"];

    [self addChildViewController:popupController];
    [self.view addSubview:popupController.view];
    [popupController didMoveToParentViewController:self];

    //do the centering here
    popupController.view.center = [self.view convertPoint:self.view.center fromView:self.view.superview];

}

或者更好的是,将它移动到didMoveToParentViewController:

- (void)didMoveToParentViewController:(UIViewController *)parent
{
    //whatever code you have here

    self.view.center = self.view.superview.center;
}

可能你需要稍微修改一下这段代码.但我确定你的问题是不正确的(执行时间)放置中心代码 – 随后被其他一些视图定位覆盖.

大佬总结

以上是大佬教程为你收集整理的ios – 如何使子视图居中全部内容,希望文章能够帮你解决ios – 如何使子视图居中所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。