Я хочу, чтобы мой аниматор отображался на экране во время загрузки материала.Я хочу пропеллер (который должен вращаться) поверх неподвижного изображения зубчатого венца.Идея состоит в том, чтобы создать экземпляр объекта с определенной рамой, определяющей размер загрузочного винта.А затем начните и остановите вращение, как с обычным вращателем.
Но, на мой взгляд, ничего не отображается.Я новичок в программировании своих собственных представлений и о том, как расположить их в плане размещения их по центру экрана и получения правильного размера.Поэтому я думаю, что мои ошибки в правильной настройке рамок и центров, но я понятия не имею.Может быть, вы можете помочь:
Это мой класс загрузочного пропеллера:
@implementation FMLoadingPropeller
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.hidden = YES;
_movablePropeller = [[UIImageView alloc] initWithFrame:self.frame];
_movablePropeller.image = [UIImage imageNamed:@"PropWhite"];
_movablePropeller.frame = self.frame;
_fixedPropellerPart = [[UIImageView alloc] initWithFrame:self.frame];
_fixedPropellerPart.image = [UIImage imageNamed:@"GearringBlue"];
_fixedPropellerPart.frame = self.frame;
[self addSubview:_fixedPropellerPart];
[self addSubview:_movablePropeller];
}
return self;
}
- (void)startPropeller
{
//_movablePropeller = [[UIImageView alloc] initWithFrame:self.frame];
//_movablePropeller.image = [UIImage imageNamed:@"MovablePropeller"];
//[self addSubview:self.movablePropeller];
self.hidden = NO;
CABasicAnimation *rotation;
rotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
rotation.fromValue = [NSNumber numberWithFloat:0.0f];
rotation.toValue = [NSNumber numberWithFloat:(2 * M_PI)];
rotation.cumulative = true;
rotation.duration = 1.2f; // Speed
rotation.repeatCount = INFINITY; // Repeat forever. Can be a finite number.
[self.movablePropeller.layer removeAllAnimations];
[self.movablePropeller.layer addAnimation:rotation forKey:@"Spin"];
}
- (void)stopPropeller
{
self.hidden = YES;
[self.movablePropeller.layer removeAllAnimations];
}
@end
И вот как он создается и запускается:
self.loadingPropeller = [[FMLoadingPropeller alloc] initWithFrame:CGRectMake(self.view.center.x, self.view.center.y, 200, 200)];
self.loadingPropeller.center=self.view.center;
[self.view addSubview:self.loadingPropeller];
[self.loadingPropeller startPropeller];
Но ничего не появляется наэкран ...
РЕДАКТИРОВАТЬ: Теперь он появляется на экране, но в самом нижнем правом углу