繁体   English   中英

总不能让 Swift UIButton 隐藏

[英]Can't always get Swift UIButton to hide

UIButton 是以编程方式创建的。
首先,它显示出来。
用户点击它。
代码以编程方式将 its.isHidden 设置为 true,但它仍然显示。
设置为 true 时,下一行是 print,显示 shows.isHidden 为 true。 (见下文 OUTPUT)
但我还是看到了。

这是代码........

DispatchQueue.main.async
{                                    
    connect_dropbox_UIButton = UIButton(frame: CGRect(x: tap_button_2nd_x,
                    y: tap_row_y,
                    width: tap_buttom_width,
                    height: tap_height ))
    connect_dropbox_UIButton.setTitle( "DX", for: .normal )
    connect_dropbox_UIButton.addTarget( self, action: #selector( connect_dropbox ), for: .touchUpInside)
    connect_dropbox_UIButton.backgroundColor = UIColorFromRGB( rgbValue: 0x0080ff )
    connect_dropbox_UIButton.isHidden = is_dropbox_connection( TRUE )
    print("show_DX_tap:     is_dropbox_connection", is_dropbox_connection() ) 
    print("show_DX_tap:     connect_dropbox_UIButton.isHidden", connect_dropbox_UIButton.isHidden )    // shows "true"

    connect_dropbox_UIButton.isEnabled = TRUE

    self.view.addSubview( connect_dropbox_UIButton )
}



func is_dropbox_connection( _ is_dump: Bool = false ) -> Bool
{
    if DBG_UPLOAD || is_dump {
        print("is_DROP_1_authorizedClient_successful", is_DROP_1_authorizedClient_successful ) 
        print("is_DROP_2_authorizeFromControllerV2_successful", is_DROP_2_authorizeFromControllerV2_successful ) 
        print("is_DropboxOAuthCompletion", is_DropboxOAuthCompletion ) 
    }
    // Abort if no dropbox access before session:
    if !is_DROP_1_authorizedClient_successful                       // DX API access is ok
        ||  !is_DROP_2_authorizeFromControllerV2_successful         // always set TRUE
        ||  !is_DropboxOAuthCompletion            // call back sets TRUE or false
    {
        return false
    }
    else 
    {
        return TRUE
    }
}

这里是 OUTPUT.......

is_DROP_1_authorizedClient_successful true is_DROP_2_authorizeFromControllerV2_successful true is_DropboxOAuthCompletion true show_DX_tap: is_dropbox_connection true show_DX_tap: connect_dropbox_UIButton.isHidden true

我复制粘贴了您的代码并将TRUE更改为true ,并且该按钮对我来说是隐藏的。

但是,根据您发布的代码片段,用户永远不会有机会与按钮进行交互,因为您将.isHidden设置为true之前,您不会将其添加为子视图。 如果您看到一个按钮,它要么是另一个按钮,要么您正在其他地方添加和修改这个按钮。 我会仔细检查您的代码中发生的位置 - 这两个代码片段中的逻辑似乎按照您的预期方式运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM