Если я правильно понял вашу идею, то Вам стоит посмотреть в стороноу Cocos2d, как советует
Enuriru.
Нужет фон (сама карта стран)
На неё кладёте спрайты с вырезанными странами, список которых у Вас в массиве countrySprites.
Клик по стране в данном случае будет определяться не сложно в методе ccTouchBegan:withEvent::
- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
CGPoint touchLocation = [self convertTouchToNodeSpace:touch];
CCSprite * newCountry = nil;
for (CCSprite *sprite in self.countrySprites) {
if (CGRectContainsPoint(sprite.boundingBox, touchLocation)) {
newCountry = sprite;
break;
}
}
Ну а имея спрайт выделенной страны можете с ним уже делать что угодно: перекрашивать, вращать, заставлять прыгать по экрану.
И, конечно, это заведомо работает быстрее, чем 20 кнопочек.