1
如果我在使用我的应用程序时收到电话,视图会稍微有些缓冲,以便为顶部的呼叫状态栏留出空间。通过电话呼叫后iOS应用程序布局发生变化
呼叫结束后,视图保持这种“改变”状态。我该如何强制应用重新调整自己的尺寸?目前我必须杀死该应用并重新启动。
如果我在使用我的应用程序时收到电话,视图会稍微有些缓冲,以便为顶部的呼叫状态栏留出空间。通过电话呼叫后iOS应用程序布局发生变化
呼叫结束后,视图保持这种“改变”状态。我该如何强制应用重新调整自己的尺寸?目前我必须杀死该应用并重新启动。
你有任何自定义视图覆盖-layoutSubviews
?
根据我的经验,这意味着您有一个视图,使用-layoutSubviews
进行自定义布局,但在适当的时候不会调用-setNeedsLayout:
;一般setting the frame does not force a layout(自动布局处理方式不同)。
在重写-layoutSubviews
任何看法,请尝试以下操作:
-(void)setFrame:(CGRect)frame
{
CGRect oldFrame = self.frame;
// This check changes behaviour slightly:
// v.frame = v.frame;
// no longer cancels animations.
// Sometimes this works around an animation glitch.
if (!CGRectEqualToRect(frame,oldFrame))
{
[super setFrame:frame];
if (!CGSizeEqualToSize(frame.size,oldFrame.size))
{
// Only layout if the size changes.
[self setNeedsLayout];
}
}
}
(你可以为-setBounds:
做相同的,但它通常是不必要的,因为据我所知它不会通过UIKit的呼吁,除了UIScrollView
)
你可以展示它的镜头吗? – Yashesh 2013-03-07 05:22:24