我有一个名为 TileView 的类,它扩展了 UIView。在另一个视图中,我创建了 9 个 TileView 对象并将它们显示在屏幕上。以下是其中 1 个的示例
tile1 = [[TileView alloc]
initWithFrame:CGRectMake(20,20, 100, 150)
withImageNamed:@"tile1.png"
value: 1
isTileFlipped: NO];
用户可以触摸任何瓷砖。当一个瓷砖被触摸时,它被“翻转”——图像被命名为一个普通的棕色瓷砖,并isTileFlipped
设置为“是”。现在是我坚持的部分:有一个确认按钮。
当按下确认按钮时,它会获取所有翻转的图块并将它们添加到一个名为 的数组acceptedTiles
中。按下确认后,我需要确保acceptedTiles
无法按下或与之交互的瓷砖。我不知道什么是最好的方法。在这里touchesBegan
,您可以了解正在发生的事情。
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
int currentTileCount = [(BoxView *)self.superview getTileCount];
int currentTileValue = [self getTileValue];
int tilecount;
if (!isFlipped) {
[image setImage:[UIImage imageNamed:@"tileflipped.png"]];
isFlipped = YES;
tilecount = currentTileCount + currentTileValue;
[(BoxView *)self.superview setTileCount:tilecount];
[(BoxView *)self.superview addToArray:self index:currentTileValue-1];
}
else {
[image setImage:[UIImage imageNamed:imageNamed]];
isFlipped = NO;
tilecount = currentTileCount - (int)currentTileValue;
[(BoxView *)self.superview setTileCount:tilecount];
[(BoxView *)self.superview removeFromArray: currentTileValue-1];
}
}