我正在尝试按下按钮时创建/显示标签,然后在再次按下相同的按钮时删除/隐藏相同的标签。我试图在Swift中以编程方式执行此操作。
我尝试过使用label.removeFromSuperview()但似乎没有任何效果。但是,当我尝试使用button.removeFromSuperview()
删除相同代码位置中的按钮时var label = UILabel()
let labelImage = UIImage(named: "Strike Line.png")
/* to select checkmarked state */
func pressCheck() {
let image = UIImage(named: "Checkmark.png")
button.setBackgroundImage(image, for: UIControlState.normal)
button.addTarget(self, action:#selector(self.pressUnCheck), for: .touchUpInside)
self.view.addSubview(button)
textField1.textColor = UIColor.gray //change textfield to a gray color
label = UILabel(frame: CGRect(x : 31, y : 69, width: 200, height: 2))
label.backgroundColor = UIColor(patternImage: labelImage!)
self.view.addSubview(label)
}
func pressUnCheck()
{
let image = UIImage(named: "To Be Completed Circle.png")
button.setBackgroundImage(image, for: UIControlState.normal)
button.addTarget(self, action:#selector(self.pressCheck), for: .touchUpInside)
self.view.addSubview(button)
label.removeFromSuperview()
textField1.textColor = UIColor.black
}
这是我试图删除/隐藏标签的地方。
答案 0 :(得分:1)
由于这显然是修复,我会把它作为答案。
在向按钮添加任何新目标之前添加 <HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
var time_left = 20;
var cinterval;
var timestatus=1;
var redirect="http://someexamplesite.com/";
function time_dec(){
time_left--;
document.getElementById('countdown').innerHTML = time_left;
if(time_left <=0){
window.location.href = redirect;
}
}
function resumetime()
{
//time_left = 20;
clearInterval(cinterval);
cinterval = setInterval('time_dec()', 1000);
}
function defaultstart()
{
time_left = 20;
clearInterval(cinterval);
cinterval = setInterval('time_dec()', 1000);
}
function stopstarttime()
{
if(timestatus==1)
{
clearInterval(cinterval);
document.getElementById('stopbutton').value="Start";
timestatus=0;
}
else
{
clearInterval(cinterval);
cinterval = setInterval('time_dec()', 1000);
document.getElementById('stopbutton').value="Stop";
timestatus=1;
}
}
defaultstart();
</SCRIPT>
</HEAD>
</HEAD>
<body>
Redirecting In <span id="countdown">20</span>.
<INPUT TYPE="button" value="stop" id="stopbutton" onclick="stopstarttime()">
</body>
</HTML>
。
如果您不删除当前目标,则会有多个目标,并在每个按钮上同时调用button.removeTarget(nil, action: nil, for: .allEvents)
和pressCheck()
。
答案 1 :(得分:0)
有几种方法可以解决这个问题......如果你只想隐藏它,你可以使用
label.isHidden = true - 会隐藏标签。 label.isHidden = false - 将显示标签。