uiviewcontroller
在stroyboard ib中添加了两个UIViews
和一个tableview
并与IBoutlet
当用户在顶部uiview中单击滑动时,我调用以下方法来更改所有子视图IBoutlet元素的帧。这很有效。
-(void)hideTopViews
{
[UIView animateWithDuration:0.25 animations:^{
[_overallHealth setHidden:YES];
_overallHealth.frame = CGRectMake(0, 0,self.view.frame.size.width,0);
[_healthBar setHidden:YES];
_sortView.frame = CGRectMake(0, 45,self.view.frame.size.width,_sortView.frame.size.height);
_portfoList.frame = CGRectMake(0, _sortView.frame.origin.x+_sortView.bounds.size.height+50,self.view.frame.size.width,self.view.frame.size.height);
_sortButton.frame = CGRectMake(90, 45,_sortButton.frame.size.width,_sortButton.frame.size.height);
[self.view bringSubviewToFront:_sortButton];
self.navigationItem.leftBarButtonItems=nil;
}];
}
然而,当我以编程方式向self.view添加另一个子视图时,所有子视图都会回到故事板中的原始位置。
-(void)showPortfolioDetailsScreen
{
PortfolioDetails *portView=[[PortfolioDetails alloc] initWithFrame:CGRectMake(300,200,200,200)];
portView.backgroundColor=[UIColor redColor];
[self.view addSubview:portView];
}
我该如何解决这个问题?
答案 0 :(得分:0)
@tanzolone是正确的,如果你只使用肖像模式并希望你的故事板停止更改你的子视图到原始框架转到你的故事板并取消选中Use Autolayout
所以你可以使用旧的struts-and-springs模型。
这里是自动布局的详细教程 http://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2