我已经找到了解决这个问题的方法。我知道这不是办法,但可以肯定的是,在 iOS 8 上市之前它可以正常工作。
崩溃原因:
在 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 找到了最佳解决方案,请发表评论。:)
快乐编码