Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSLayout约束以隐藏UIView_Ios_Swift_Xcode_Uiview_Storyboard - Fatal编程技术网

Ios NSLayout约束以隐藏UIView

Ios NSLayout约束以隐藏UIView,ios,swift,xcode,uiview,storyboard,Ios,Swift,Xcode,Uiview,Storyboard,我正在尝试重新创建此约束,但我不知道如何连接此约束: 故事板中的RootViewController有一个约束,其中未选中“已安装”复选框: 但看起来它与RootViewController的关系,即使它隐藏了第二个容器视图: 我已尝试在代码中使用@IBOutlet弱var hidecameracontaint:NSLayoutConstraint创建IBOutlet然后将连接拖动到情节提要中的RootViewController,但这不起作用 但我需要使用约束,因为在代码中,摄影机可见性是

我正在尝试重新创建此约束,但我不知道如何连接此约束:

故事板中的
RootViewController
有一个约束,其中未选中“已安装”复选框:

但看起来它与
RootViewController
的关系,即使它隐藏了第二个容器视图:

我已尝试在代码中使用
@IBOutlet弱var hidecameracontaint:NSLayoutConstraint创建
IBOutlet
然后将连接拖动到情节提要中的
RootViewController
,但这不起作用

但我需要使用约束,因为在代码中,摄影机可见性是用它设置的:

fileprivate func setCameraVisibility(_ visible: Bool) {
    hideCameraConstraint.isActive = !visible
    UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 0, options: .beginFromCurrentState, animations: {
        self.view.layoutIfNeeded()
    }, completion: nil)
}

有什么想法吗?谢谢

你必须这样使用

    hideCameraConstraint.constant += anyValue

在约束中,必须设置整数值而不是布尔值。

必须这样使用

    hideCameraConstraint.constant += anyValue

在约束中,必须设置整数值而不是布尔值。

如果要隐藏和取消隐藏具有约束的视图,请使用以下方法:

  • 使用
    height==0设置约束
    addidentifier
    hideviewidentier
  • 将高度约束优先级设置为
    250
  • 将冲突约束的优先级设置为
    900
    (在您的情况下,这将是底部布局或实际高度)
  • 然后更新优先级以隐藏
    250
    之间的约束以显示视图,并更新
    990
    以隐藏视图

    //@update
    - (void)upadteView:(UIView *)view hide:(BOOL)hide {
        [view.constraints enumerateObjectsUsingBlock:^(__kindof NSLayoutConstraint * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            if ([obj.identifier isEqual:@"hideViewIdentifier"]) {
                obj.priority = (hide) ? 990 : 250;
                *stop = YES;
                return;
            }
        }];
    }
    

    如果要隐藏和取消隐藏具有约束的视图,请使用以下方法:

  • 使用
    height==0设置约束
    addidentifier
    hideviewidentier
  • 将高度约束优先级设置为
    250
  • 将冲突约束的优先级设置为
    900
    (在您的情况下,这将是底部布局或实际高度)
  • 然后更新优先级以隐藏
    250
    之间的约束以显示视图,并更新
    990
    以隐藏视图

    //@update
    - (void)upadteView:(UIView *)view hide:(BOOL)hide {
        [view.constraints enumerateObjectsUsingBlock:^(__kindof NSLayoutConstraint * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            if ([obj.identifier isEqual:@"hideViewIdentifier"]) {
                obj.priority = (hide) ? 990 : 250;
                *stop = YES;
                return;
            }
        }];
    }
    


    与其设置isActive,不如尝试修改常量属性?是否要隐藏和取消隐藏某些动作的视图?@carlos21我只是想弄清楚如何在情节提要上添加该约束。你知道怎么做吗?@Nazir是的,我想隐藏和取消隐藏相机视图。基本上可以显示或隐藏拍照功能。与其设置为“活动”,不如尝试修改“常量”属性?是否要隐藏和取消隐藏某些动作的视图?@carlos21我只是想弄清楚如何在情节提要上添加该约束。你知道怎么做吗?@Nazir是的,我想隐藏和取消隐藏相机视图。基本上能够显示或隐藏拍照的能力。感谢您的回复!但是,我如何在故事板中连接约束?@SRMR我给你举个例子,假设你在故事板中使用UIView并将其前导约束设置为50,那么你必须将这些约束附加到你创建的约束,即hideCameraConstraint。现在在程序中,您可以更改UIView的前导约束。示例-hideCameraConstraint.CONTANT=20,这意味着现在您的UIView从20开始,而不是从50开始,这样您就可以通过编程更改约束。如果你喜欢我的答案,请投票给我的答案。好的,我要找的是如何连接我在故事板中寻找的约束谢谢你的回复!但是,我如何在故事板中连接约束?@SRMR我给你举个例子,假设你在故事板中使用UIView并将其前导约束设置为50,那么你必须将这些约束附加到你创建的约束,即hideCameraConstraint。现在在程序中,您可以更改UIView的前导约束。示例-hideCameraConstraint.CONTANT=20,这意味着现在您的UIView从20开始,而不是从50开始,这样您就可以通过编程更改约束。如果你喜欢我的答案,请把我的答案投上去。好的,我正在寻找的是如何连接我在故事板中寻找的约束。这是我认为我正在寻找的东西,让我今天试试!我正在试图弄清楚如何手动拖动约束。拖动约束是什么意思?故事板上的“隐藏摄影机约束”我认为最好是开始聊天,因为这是主题,不利于进行长时间对话。这是我认为我正在寻找的类型,但今天让我尝试一下!我正在试图弄清楚如何手动拖动约束。拖动是什么意思?故事板上的“隐藏摄影机约束”我认为最好是开始聊天,因为这是主题,不利于进行长时间的对话