0

我有 3 个相邻的视图:一个在中心,两个在顶部和底部。有时我将顶部和底部视图设置为隐藏。发生这种情况时如何使中心视图拉伸?

4

3 回答 3

0

创建NSArray3 个(或更多)中UIView的一个,并在隐藏任何视图时调用此方法。此方法将允许任何可见视图扩展以填充容器。

-(void)expandVisibleViews{

NSUInteger numVisible = 0;
NSFloat height;
NSUInteger count = 0;

for(UIView *view in viewArray){
  if(!view.hidden){
    numVisible++;
  }
}

height = container.frame.size.height / numVisible;


for(UIView *view in viewArray){
  if(!view.hidden){
    view.frame = CGRectMake(view.frame.origin.x, height*count, view.frame.size.width, height);
    count++;
  }
}

}
于 2012-08-17T21:05:54.803 回答
0

我决定在调用 set hidden 时对分配给视图框架的 CGRect 进行硬编码:

if (surroundingViewsHidden) {
    iphoneWebView.frame = CGRectMake(0, 0, 320, 460);
    ipadWebView.frame = CGRectMake(0, 0, 1024, 768);
}
else {
    iphoneWebView.frame = CGRectMake(0, 44, 320, 372);
    ipadWebView.frame = CGRectMake(0, 44, 916, 768);
}

它完成了工作。

于 2012-08-18T15:10:37.073 回答
0

隐藏其他视图后调用此函数

-(void) stretchView : (UIView *) view
{
    [view setFrame:self.view.frame];
}

例如,[自我拉伸视图:viewForStretch];

(您也可以在拉伸视图时应用动画)

于 2012-08-17T18:54:48.520 回答