我创建了一个按钮开关案例。按下按钮时,图像被添加到子视图中。再次单击按钮时,它将从超级视图中删除图像。如果再次单击,它将再次添加图像,等等。
var buttonState: Int = 0;
func addfriend(sender: UIButton){
switch(buttonState){
case 0:
self.view.addSubview(cameramethod)
self.view.addSubview(searchmethod)
self.view.addSubview(nearbymethod)
buttonState = 1;
break;
case 1:
cameramethod.removeFromSuperview()
searchmethod.removeFromSuperview()
nearbymethod.removeFromSuperview()
default: break;
}
}
你想要这样吗?
func addfriend(sender: UIButton){
switch(buttonState){
case 0:
self.view.addSubview(cameramethod)
self.view.addSubview(searchmethod)
self.view.addSubview(nearbymethod)
buttonState = 1;
break;
case 1:
cameramethod.removeFromSuperview()
searchmethod.removeFromSuperview()
nearbymethod.removeFromSuperview()
buttonState = 0;
break;
default: break;
}
}
我认为应该使用布尔类型而不是Integer来保存按钮状态:
var buttonDisplay = false
func addfriend(sender: UIButton){
// toggle your button state when pressed
buttonDisplay = !buttonDisplay
// check if true
if buttonDisplay {
// case positive add your subviews
view.addSubview(cameramethod)
view.addSubview(searchmethod)
view.addSubview(nearbymethod)
else {
// otherwise remove them
cameramethod.removeFromSuperview()
searchmethod.removeFromSuperview()
nearbymethod.removeFromSuperview()
}
}
这样做,就可以使用按钮的标记值。
func addfriend(sender: UIButton){
switch(sender.tag){
case 0:
self.view.addSubview(cameramethod)
self.view.addSubview(searchmethod)
self.view.addSubview(nearbymethod)
sender.tag = 1;
break;
case 1:
cameramethod.removeFromSuperview()
searchmethod.removeFromSuperview()
nearbymethod.removeFromSuperview()
sender.tag = 0;
default: break;
}