Although UIKit is incredibly useful for games, Cocos2D offers many easy ways to perform many common gaming operations. For example, he has the ability to create simple scrolling-tiled games (very common and very popular), using a simple few lines of code to import the Tile map set. Regarding some of the advantages of UIKit over Cocos2D that you mentioned, they are very easy to implement in Cocos2D.
Touch control: It's as simple as replacing the UIKit touchhesBegan method with ccTouchesBegan and setting self.isTouchEnabled = YES in the init method.
Animations: This is much easier in Cocos2d, mainly because the frame rate and animation problems have been resolved. In UIKit, you cannot use CoreAnimation to move an object while detecting a collision. You will need to animate the object using NSTimer. In Cocos2d, you can easily animate objects (called sprites) and still use collision detection and interaction with the object.
More Help / Documentation: Cocos2D offers incredible documentation and, moreover, code examples! If you cannot find it there, the number of iPhone game developers is growing, who are integrating Cocos2D into their applications and are ready to help in many problems.
If you plan to develop games for the iPhone, and not just general applications for performance, music, etc., I highly recommend Cocos2D. Remember that you can always find ways to combine this and UIKit for many operations! These operations are not completely lost!
source share