相关疑难解决方法(0)

在通话状态栏中(无法满足约束条件)

就像这个问题:自动布局和通话中状态栏和这个问题:调整通话状态栏的大小?,我在调用状态栏中遇到问题,搞砸了我的视图布局.

这是我的嵌套结构.我有一个嵌套在另一个ViewController中的自定义模态ViewController.每当显示In Call Status Bar(然后关闭)时,会发生以下情况:

在此输入图像描述

下面是显示In Call Status Bar之前应该是什么样子的图片:

在此输入图像描述

发生错误后状态栏的背景蓝色是根视图控制器的背景颜色.

每当显示"呼叫状态栏"时,将打印出以下错误:

Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for …
Run Code Online (Sandbox Code Playgroud)

statusbar uiviewcontroller ios

32
推荐指数
3
解决办法
4570
查看次数

iOS上状态栏高度更改时,基于约束的布局未设置动画

我有过这样的观点 autoresizingMask = UIViewAutoresizingFlexibleHeight

当状态栏为其高度设置动画时(例如挂断电话时),视图的高度会生成动画并增加.

但是使用自动布局我将使用约束替换此autoresizingMask:

UIView *orangeView = [[UIView alloc] initWithFrame:CGRectZero];
orangeView.translatesAutoresizingMaskIntoConstraints = NO;
orangeView.backgroundColor = [UIColor orangeColor];

[self.view addSubview:orangeView];

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[orangeView]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(orangeView)]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(40)-[orangeView]-(190)-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(orangeView)]];
Run Code Online (Sandbox Code Playgroud)

但是现在,我的布局更改没有使用状态栏进行动画处理,只是在没有任何动画的情况下进行了更改.

现在我知道在使用基于约束的布局时我应该在动画块中调用-layoutIfNeeded.但在这里,我不是创建动画块的人!那么有没有办法让变化动起来?

这是否意味着我必须在我的代码中找到一个位置,这个位置将在我没有启动的动画块中执行?当我被激活时,我试图在我的控制器中设置[self.view layoutIfNeeded] UIApplicationWillChangeStatusBarFrameNotification,但它不起作用.

animation ios autolayout

11
推荐指数
1
解决办法
1345
查看次数

如何在iOS 8中为自定义呈现的视图控制器处理调用(双高)状态栏的布局?

在iOS 7中,我能够处理自定义呈现视图控制器的布局,还通过添加约束来考虑调用状态栏,其中呈现的视图控制器具有与呈现视图控制器相同的中心和相同的宽度和高度.这对于宽度和高度使用自动调整大小是优选的,否则,当呼叫状态栏消失时,由于某种原因,呈现的视图控制器将保持从顶部向下推20点.

然而,在iOS 8中,这个技巧不再起作用了.首先,我通过实验发现,呈现视图控制器似乎不一定在容器视图中,因此我无法将这些约束添加到容器视图中.(2014年WWDC视频中的"A Look Inside Presentation Controllers"示例代码没有将呈现视图控制器放在那里.)似乎让所呈现的视图控制器使用自动布局或自动调整大小来填充容器视图将起作用,但我发现当呼叫状态栏消失时,容器视图本身可能会被按下20分(在iOS 7中不是这种情况).

我一直在使用"A Look Inside Presentation Controllers"示例代码,但即使这段代码也无法正确处理通话状态栏.(UIPresentationController顺便说一句,我仍然试图处理新的API.)

iphone cocoa-touch uiviewcontroller ios ios8

11
推荐指数
1
解决办法
3748
查看次数