В моих усилиях по обновлению моего приложения для поддержки IOS7 я узнал, что UIPageControl не поддерживает UIImageView. Они изменили его.
Я подклассифицирую UIPageControl, чтобы добавить обычные круги вместо обычных (приложенный пример)
Мой класс:
- (id)initWithFrame:(CGRect)frame 
{
    // if the super init was successfull the overide begins.
    if ((self = [super initWithFrame:frame])) 
    { 
        // allocate two bakground images, one as the active page and the other as the inactive
        activeImage = [UIImage imageNamed:@"active_page_image.png"];
        inactiveImage = [UIImage imageNamed:@"inactive_page_image.png"];
    }
    return self;
}
// Update the background images to be placed at the right position
-(void) updateDots
{
    for (int i = 0; i < [self.subviews count]; i++)
    {
        UIImageView* dot = [self.subviews objectAtIndex:i];
        if (i == self.currentPage) dot.image = activeImage;
        else dot.image = inactiveImage;
    }
}
// overide the setCurrentPage
-(void) setCurrentPage:(NSInteger)page
{
    [super setCurrentPage:page];
    [self updateDots];
}
 
Теперь в IOS7 я получил следующую ошибку:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView setImage:]: unrecognized selector sent to instance 0xe02ef00'
и после исследования я понял, что следующий код вызывает ошибку:
UIImageView* dot = [self.subviews objectAtIndex:i];
if (i == self.currentPage) dot.image = activeImage;
    else dot.image = inactiveImage;
Я проверил subviews и увидел, что UIView вместо UIImageView. вероятно, Apple что-то изменила.
Есть идея, как это исправить?