我有三个视图:topView,middleView,bottomView。
当我点击topView中的按钮时,我想在topView和middleView之间插入alpha视图。
但是已经通过在viewDidLoad中调用方法[self.view addsubView:]找到了middleView和bottomView。
所以我必须在alpha视图下面更改middleView和bottomView ...
所以我调用了方法' setFrame',但已经添加的视图没有移动到我想放置它们的位置。
所以我必须调用方法' removeFromSuperView'但是有一个很大的问题,即middleView和bottomView是包含多个子视图的主视图...
我不知道如何解决这个问题,请帮助我!
! middleView和bottomView,他们只需要关闭,移动问题很简单。
**** UPDATE 我的问题代码如下:
authCodeView是alphaView
authCodeView = [[UIView alloc] initWithFrame:CGRectMake(0, topView.frame.size.height + 8, [UIScreen mainScreen].bounds.size.width, topView.frame.size.height)];
[authCodeView setBackgroundColor:[UIColor whiteColor]];
authCodeField = [[UITextField alloc] initWithFrame:CGRectMake(30, 0, authCodeView.frame.size.width - 30, authCodeView.frame.size.height)];
authCodeField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"인증번호 입력" attributes:@{NSForegroundColorAttributeName:tempGray}];
[authCodeView addSubview:authCodeField];
NSLog(@"%f",authCodeView.frame.origin.y+authCodeView.frame.size.height + 8);
[middleView setFrame:CGRectMake(100, authCodeView.frame.origin.y+authCodeView.frame.size.height + 8, [UIScreen mainScreen].bounds.size.width, 308.0f)];
[bottomView setFrame:CGRectMake(0, middleView.frame.origin.y+middleView.frame.size.height+8, [UIScreen mainScreen].bounds.size.width, bottomView.frame.size.height)];
[self.view addSubview:authCodeView];
[self.view addSubview:middleView];
[self.view addSubview:bottomView];
答案 0 :(得分:1)
所以我调用了方法'setFrame',但是已添加的视图没有移动到我想放置的位置。
然后你将错误的矩形传递给-setFrame:
。该方法改变了视图的框架,即它在超视图的坐标系中的位置和大小。
所以我必须调用方法'removeFromSuperView',但是有一个很大的问题,即middleView和bottomView是具有多个子视图的主视图
您只需更改其位置即可删除视图。如果您想将其添加到其他视图中,或者根本不想在超级视图中使用它,则只需将其删除即可。也就是说,如果middleView
之类的视图包含子视图,则会出现问题 - 如果您将其从超级视图中移除,或者如果您更改middleView
的位置,那么这些视图会与middleView
同步等等。
我不知道如何解决这个问题,请帮帮我!
在寻求帮助时,您确实需要发布能够重现您尝试解决的问题的代码。