Приложение вылетает в iOS7.У меня есть решение для iOS 7:
Причина сбоя:
в iOS 7 [self.subViews objectAtIndex: i]
возвращает UIView
Вместо UIImageView
и setImage
не является свойством UIView
и приложение вылетает.Я решаю свою проблему, используя следующий код:
Проверьте, является ли подпредставление UIView
(для iOS7) или UIImageView
(для iOS6 или более ранней).И если это UIView
, я собираюсь добавить UIImageView
в качестве подпредставления для этого представления и вуаля, чтобы оно работало и не зависало .. !!
-(void) updateDots
{
for (int i = 0; i < [self.subviews count]; i++)
{
UIImageView * dot = [self imageViewForSubview: [self.subviews objectAtIndex: i]];
if (i == self.currentPage) dot.image = activeImage;
else dot.image = inactiveImage;
}
}
- (UIImageView *) imageViewForSubview: (UIView *) view
{
UIImageView * dot = nil;
if ([view isKindOfClass: [UIView class]])
{
for (UIView* subview in view.subviews)
{
if ([subview isKindOfClass:[UIImageView class]])
{
dot = (UIImageView *)subview;
break;
}
}
if (dot == nil)
{
dot = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, view.frame.size.width, view.frame.size.height)];
[view addSubview:dot];
}
}
else
{
dot = (UIImageView *) view;
}
return dot;
}
Надеюсь, это решит и вашу проблему для iOS7.и если Anypone найдет оптимальное решение для этого, пожалуйста, прокомментируйте.:)
Счастливое кодирование