总的来说,我对 iOS 编程和 Objective-C 比较陌生。
我拥有的是一堆名为“image0.png”、“image1.png”、...、“image47.png”的图像,它们构成了一个动画图像。首先,我创建了一个按钮,当按下该按钮时,动画开始。
@property (nonatomic, strong) IBOutlet UIImageView *imageView;
...
- (IBAction)startAnimation {
self.imageView.animationImages = [NSArray array];
for (int i = 0; i < 48; ++i) {
NSString *imageName = [NSString stringWithFormat:@"image%i.png", i];
UIImage *image = [UIImage imageNamed:imageName];
self.imageView.animationImages = [self.imageView.animationImages arrayByAddingObject:image];
}
self.imageView.animationDuration = 5.0;
[self.imageView startAnimating];
}
除了您必须按下按钮才能启动外,这工作得很好。我希望动画图像立即开始,而无需按任何按钮。我试图做的是给 imageView
一个自定义的 UIImageView
类。然后在 customImageView.m
文件中,我将上面的代码推送到 initWithFrame:
方法中。
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.animationImages = [NSArray array];
for (int i = 0; i < 48; ++i)
self.animationImages = [self.animationImages arrayByAddingObject:[UIImage imageNamed:[NSString stringWithFormat:@"image%i.png", i]]];
self.animationDuration = 5.0;
[self startAnimating];
}
return self;
}
然而,现在什么也没有发生。我也试过将 [self startAnimating]
行移回 IBAction
,但仍然没有。
最佳答案
将您在 startAnimation
中的代码放入 ViewDidAppear
中。 controller 的
View 一出现,它就会开始动画。
关于ios - 创建一个仅作为 gif 的自定义 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23355412/