[英]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.