我正在Swift中编写一个Watch应用程序。我有一个盒子网格,我没有足够的声誉来发布图像。每一行都有一个小组。该组具有背景颜色。每个方框都是一个按钮。行中的第一个框没有图像或颜色,只显示组的背景颜色,按下时,它会重置行上的其他框,使用与最初开始时相同的背景图像和颜色。一行中的其他3个按钮具有自己的背景图像和背景颜色。
当按下其中一个按钮时,它会删除显示按钮背景的按钮图像,该图像只是一种纯色,与行颜色不同。您可以在the correct response to button press看到此信息。再次按下按钮会返回我想要的图像。这与第一个屏幕截图相同。但是,通过按钮的后续循环不再显示按钮的背景颜色,而是显示组的(行)背景颜色。您可以在not behaving properly看到此信息。所以第一次按下工作并删除背景图像,显示按钮的背景颜色。即使按下按钮也会将按钮恢复为原始背景图像。随后的奇数按下显示行背景颜色。无论是第二次按下按钮还是使用行按钮(行中的第一个按钮)重置行,此操作都是相同的。
如何修复后续的单次按下以充当第一次按下并显示按钮的背景颜色?
我的行和按钮的控制器代码(blueRed)位于下方。
@IBOutlet var clearBlueButton: WKInterfaceButton!
@IBAction func clearBlue() {
if (blueRedDead) {
blueRed.setBackgroundImageNamed( "livered.png");
blueRed.setBackgroundColor( UIColor (red: 1.0, green: 0.0, blue: 0.0, alpha: 1.0));
blueRedDead = false;
}
if (blueBlackDead) {
blueBlack.setBackgroundImageNamed( "liveblack.png");
blueBlack.setBackgroundColor( UIColor (red: 0.0, green: 0.0, blue: 0.0, alpha: 1.0));
blueBlackDead = false;
}
if (blueYellowDead) {
blueYellow.setBackgroundImageNamed( "liveyellow.png");
blueYellow.setBackgroundColor( UIColor (red: 1.0, green: 1.0, blue: 0.0, alpha: 1.0));
blueYellowDead = false;
}
}
@IBOutlet var blueRed:
WKInterfaceButton!
@IBAction func blueStrikeRed() {
if (!blueRedDead) {
blueRedDead=true;
blueRed.setBackgroundImage( nil);
blueRed.setBackgroundColor( UIColor (red: 1.0, green: 0.0, blue: 0.0, alpha: 1.0));
}
else {
blueRedDead=false;
blueRed.setBackgroundImageNamed( "livered.png");
blueRed.setBackgroundColor( UIColor (red: 1.0, green: 0.0, blue: 0.0, alpha: 1.0));
}
}
感谢。 克雷格